public class FrameA extends JFrame { JMenuItem menuItemForB = new JMenuItem(); public FrameA(){ menuItemForB.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { panelB = new PanelB(){ } } ); }
public class PanelB extends JPanel { public PanelB() //frameAの参照を引数で渡す[RRR] { //FrameA.thisで呼ぶ } } } 0114942012/03/06(火) 16:20:38.22>>113 なるほど FrameA の中で PanelB を定義すれば FrameA.this が見えるわけですね。 なお >>111に示したコードの前半もほんとうは>>113のように FrameA の コンストラクタ内にあったんですが貼り付けるときに削除してしまっていました。 Swing も内部クラスも使ったことがなかったので勉強になります。ただ、PanelB の コードは FrameA から独立させて書いておきたいので、Swing のマナー違反でない 限り >>111のような引数渡しの方法を使おうと思っています。どうもありがとうございました。 0115デフォルトの名無しさん2012/03/06(火) 17:03:13.13 単に public class FrameA extends JFrame { JMenuItem menuItemForB = new JMenuItem(); menuItemForB.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { panelB = new PanelB(FrameA.this); } } ); } は? 0116942012/03/06(火) 17:45:57.39>>115 いちいちframeAに代入したりしないで直接FrameA.thisを渡すということですね。 >>111 よりスマートだしいけそうですね。どうもありがとうございます。 0117営利利用に関するLR審議中@詳細は自治スレへ2012/04/05(木) 17:18:43.81 JFrame をマウスでドラッグして移動するイベントを取得するにはどのようにするのが 定石なんでしょうか?以下のような構造のコードを書いてみましたが、タイトルバーの下の 本体領域の内部では[A][B]の処理が行われるものの、本来の目的である JFrame 全体の ドラッグは検知しないようです。HierarchyBoundsListener() を使えば JFrame 移動の イベントを取得できましたが、マウスのドラッグ以外による移動まで検知してしまうので できれば使いたくありません。簡単な方法がありましたらお教えいただきたくお願いします。 public class Test extends JFrame implements MouseMotionListener { public Test() { ... addMouseMotionListener(this); } public void mouseDragged(MouseEvent e) { ... } //[A] public void mouseMoved(MouseEvent e) { ... } //[B] } 0118営利利用に関するLR審議中@詳細は自治スレへ2012/04/06(金) 18:51:29.84>>117 で質問したものです。挙動がおかしかったのはマルチディスプレイ・ マルチワークスペースという少し特殊な環境でテストしていたからのようで、 普通の単一スクリーン上でテストしたところ期待通り動いていました。 現在 HyerarchyBoundsListenerを使っていますが、ComponentListener の componentMoved() でも良さそうです。マルチ・ワークスペースに対応する ように修正することにします。うまくいかなかったらまた質問させてください。 0119営利利用に関するLR審議中@詳細は自治スレへ2012/04/07(土) 16:01:05.53http://orablogs-jp.blogspot.jp/2012/02/mpeg-4-multimedia-support-in-javafx.html
at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:79) 0177デフォルトの名無しさん2012/08/19(日) 04:49:51.03 ディスクの残り容量 0178デフォルトの名無しさん2012/08/20(月) 09:02:58.96>>176 -Djava.net.preferIPv4Stack=true IPv6がらみ。 0179デフォルトの名無しさん2012/08/26(日) 00:18:35.58 JavaFXの姉妹スレはC++さんに荒らしされてるのでこっちでお聞きします。 metalがまだsteelのころに、metalworksだったかのサンプルでcolorがred,greenなど全体の印象を変更できたのですが、metal laf (steel,ocean)の時にそれらカラーなどをSystem.setPropertyなどのプロパのセットのやり方だけで設定することは出来ませんか? 0180デフォルトの名無しさん2012/08/26(日) 00:51:59.27 馬鹿には無理 0181デフォルトの名無しさん2012/08/29(水) 09:57:43.43 Containerクラスの以下のメソッドで、マウス下の部品を取ろうと思っていますが、 コンボボックス、テキストボックス、JTabbedPane、JScrollPaneなどは取れますが、ラベルがどうしても取れません。 なにかいい方法はないでしょうか?
Component getMouseEventTarget(int x, int y, boolean includeSelf) { 0182デフォルトの名無しさん2012/08/29(水) 10:27:01.65 馬鹿には無理 0183デフォルトの名無しさん2012/09/10(月) 08:01:46.88 WindowsのネイティブアプリからSwingアプリにドラッグアンドドロップすると ネイティブアプリ固まるようになってね?