私は2つのJButtons
"Left"と "Right"と呼ばれています。 "Left"ボタンは矩形オブジェクトを左に移動し、 "Right"ボタンは右に移動します。 いずれかのボタンがクリックされたときのリスナーとして機能するクラスには、ActionListener
が1つあります。 しかし、私は、それぞれがクリックされたときに異なるアクションが起こるようにしたい。 ActionListener
のどの部分をクリックしたかを区別するにはどうすればよいですか?1つのアクションリスナー、2つのJButton
答えて
//両方のボタンにアクションコマンドを設定します。
btnOne.setActionCommand("1");
btnTwo.setActionCommand("2");
public void actionPerformed(ActionEvent e) {
int action = Integer.parseInt(e.getActionCommand());
switch(action) {
case 1:
//doSomething
break;
case 2:
// doSomething;
break;
}
}
UPDATE:
public class JBtnExample {
public static void main(String[] args) {
JButton btnOne = new JButton();
JButton btnTwo = new JButton();
ActionClass actionEvent = new ActionClass();
btnOne.addActionListener(actionEvent);
btnTwo.addActionListener(actionEvent);
btnOne.setActionCommand("1");
btnTwo.setActionCommand("2");
}
}
class ActionClass implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int action = Integer.parseInt(e.getActionCommand());
switch (action) {
case 1:
// DOSomething
break;
case 2:
// DOSomething
break;
default:
break;
}
}
}
の
私はこれが一般的にはよりエレガントだと思います。ありがとう! – CodyBugstein
しかし、これはActionListenerが同じクラスにあることを必要としますか? – CodyBugstein
1つのActionListenerクラスを定義します。 UIクラスでアクションクラスのオブジェクトを宣言します。 addActionListenerメソッドを使用して各ボタンのactionListenerを設定し、このアクションクラス参照をparamとして追加し、最後にactionコマンドをそれぞれに設定します。 – Amarnath
ActionEvent
に利用できるgetSource()
方法と非常に簡単:ボタンのそれぞれに
JButton leftButton, rightButton;
public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
if (src == leftButton) {
}
else if (src == rightButton) {
}
}
- 1. JButton配列のアクションリスナー
- 2. 1つに2つのチャートタイプ?
- 3. 1つのXcodeプロジェクト、2つのターゲット、2つのアプリケーション、2つのDefault.pngファイル?
- 4. WPF、2つのテキストボックス、1つのトリガー、1つのアニメーション?
- 5. 多くのJButtonのための1つのActionListener
- 6. 2つのウィンドウで1つのウェブページのインスタンスが2つ
- 7. 1つのSVNリポジトリの2つのユーザーアカウント?
- 8. 1つのアクティビティ用の2つのランチャ
- 9. symfonyの1つのエンティティ、2つのリポジトリ
- 10. 1つのアプリケーションの2つのリソースセット
- 11. 2つのSELECTS、1つのクエリ
- 12. 1つの.aspxページに2つのフォームタグ
- 13. 1つのテーブル - 2つのモデル
- 14. Django - 2つのビュー、1つのページ
- 15. 1つのアクティビティで2つのphonegap webview
- 16. 2つのタイムイベント1つのWindowsサービス
- 17. 2つのmanagedObjectContextと1つのmanagedObject
- 18. 2つのnibファイルと1つのビューコントローラ
- 19. 1つのDataGridに2つのDataTable -WPF
- 20. 2つのテーブル1つのクラス
- 21. 1つのクエリで2つのWHERE&COUNT
- 22. 1つのURLに2つのビュー
- 23. 2つのzendアプリケーション:サブドメインに1つ、ルートに1つ
- 24. 2つのJButtonの上にJLabelを置く
- 25. イメージデータベース - 1つのテーブルまたは2つ?
- 26. 1つまたは2つのmanagedObjectContext
- 27. は、私は1つのテーブルに2つのタイムスタンプを持つ2つのタイムスタンプ
- 28. 2つのJButtonを同じサイズにする
- 29. Android、2アプリ1つのデータベース?
- 30. 2 1つのページのテーブルビュー - 2つのNSArrays
可能重複[?ジャワ - 一つの機能を有する複数のイベントを処理](http://stackoverflow.com/questions/501533/java-handle-multiple- events-with-one-function) –