![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
JFrame の上に JPanel があり、JPanel の上に JButton があるとします。
JButton が押されたことを JFrame に知らせるにはどうしたらいいでしょうか。
わかるところまで書いてみました。
class MyFrame extends JFrame implements ActionListener {
MyPanel myPanel = new MyPanel();
MyFrame() {
myPanel.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() {
button1.addActionListener(this);
add(button1);
}
public void actionPerformed(ActionEvent e) {
}
}
No.2ベストアンサー
- 回答日時:
コードが根本的におかしいです。
myPanelのActionListenerはどこで呼ばれるのですか?
MyFrameやMyPanelで別のクラスのためのActionListenerをimplementsするのも良くありません。
そもそも明らかに動かないコードです。イベント処理の前にもっと基本的なSwingのプログラムを書いてみましょう。
本題ですが簡単な方法としては、button1のActionListenerにMyFrameインスタンスへの参照を持たせる方法があります。
MyFrameに受け取り用のメソッドを用意して、それをbutton1のActionListenerから呼び出します。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java final 1 2022/06/10 22:49
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java eclipse実行ができない 2 2022/07/27 04:47
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaのメモリリーク?を解決す...
-
ActionListener について
-
コンストラクタの引数の中のnew?
-
考えてもちっともいい案が出て...
-
Socketの接続のタイムアウトを...
-
変数を動的に利用するには?
-
javaの質問です 合ってるかを...
-
eclipseに記述したjavaファイル...
-
C# 半角カナの文字化けについて
-
【JAVAエラー】互換性のない型...
-
Javaで文字と数字が混ざったも...
-
ハートマークを表示するには?
-
0~9まで入力させ、前に入力さ...
-
System.out.printlnの出力先
-
配列への文字列の格納について
-
C言語のポインターに関する警告
-
JSPでDBからデータ読み込みブラ...
-
パソコンキーボードで時分秒を...
-
nullcline
-
エクセルの配列定数について教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
プログラミングの問題です。大...
-
中カッコ{}だけの記述について
-
Javaでlog4jを使ってログ出力を...
-
NoSuchMethodErrorが解決できま...
-
Socketの接続のタイムアウトを...
-
コンストラクタの引数の中のnew?
-
javaのプログラミングで作るRPG...
-
System.exit()の値を取得したい
-
JSP/Servletのパラメータの受け...
-
Processing :指定フォルダ内の...
-
javaで特定の文字列から特定の...
-
インタフェイス実装と抽象クラ...
-
Javaで日本語の出力が文字化けする
-
randomで
-
【初心者です】javaで平均値を...
-
StringクラスのcompareToメソッド
-
ArrayList でスタックを
-
GetterとSetterをやったのに。
-
DESを使用した暗号化/復号化処...
おすすめ情報