- ベストアンサー
JButtonを押すとJFrameに知らせる方法は?
- JFrame上にJPanelがあり、その上にJButtonがあるとします。
- JButtonが押されたことをJFrameに知らせる方法はありますか?
- MyFrameクラスとMyPanelクラスを使用して、JPanel上のJButtonが押されたことをJFrameに知らせる方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
コードが根本的におかしいです。 myPanelのActionListenerはどこで呼ばれるのですか? MyFrameやMyPanelで別のクラスのためのActionListenerをimplementsするのも良くありません。 そもそも明らかに動かないコードです。イベント処理の前にもっと基本的なSwingのプログラムを書いてみましょう。 本題ですが簡単な方法としては、button1のActionListenerにMyFrameインスタンスへの参照を持たせる方法があります。 MyFrameに受け取り用のメソッドを用意して、それをbutton1のActionListenerから呼び出します。
その他の回答 (1)
- PecoPlus
- ベストアンサー率76% (144/188)
こんにちは。 一番、簡単な方法で言えば、こんな感じじゃないでしょうか。 (コンパイルするときは全角スペースを半角スペースに変換してからにしてください) class MyFrame extends JFrame implements ActionListener { MyPanel myPanel = new MyPanel(); MyFrame() { myPanel.button1.addActionListener(this); add(myPanel); } public void actionPerformed(ActionEvent e) { System.out.println("The button on the MyPanel was pressed!"); } public static void main(String[] args) { new MyFrame(); } } class MyPanel extends JPanel implements ActionListener { JButton button1 = new JButton(); MyPanel() { add(button1); } }
お礼
ご返答ありがとうございました。