• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ActionListener について)

JButtonを押すとJFrameに知らせる方法は?

このQ&Aのポイント
  • JFrame上にJPanelがあり、その上にJButtonがあるとします。
  • JButtonが押されたことをJFrameに知らせる方法はありますか?
  • MyFrameクラスとMyPanelクラスを使用して、JPanel上のJButtonが押されたことをJFrameに知らせる方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ttnnkkyy
  • ベストアンサー率26% (255/979)
回答No.2

コードが根本的におかしいです。 myPanelのActionListenerはどこで呼ばれるのですか? MyFrameやMyPanelで別のクラスのためのActionListenerをimplementsするのも良くありません。 そもそも明らかに動かないコードです。イベント処理の前にもっと基本的なSwingのプログラムを書いてみましょう。 本題ですが簡単な方法としては、button1のActionListenerにMyFrameインスタンスへの参照を持たせる方法があります。 MyFrameに受け取り用のメソッドを用意して、それをbutton1のActionListenerから呼び出します。

mitsuruj
質問者

お礼

ご返答ありがとうございました。

その他の回答 (1)

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんにちは。  一番、簡単な方法で言えば、こんな感じじゃないでしょうか。 (コンパイルするときは全角スペースを半角スペースに変換してからにしてください) 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);   } }

関連するQ&A