Javaを使用してGUIアプリケーションを作成しています。メインフレームには、それぞれが特定の機能を持つ異なるセクションがあります。ヘッダーパネルには、[送信]、[元に戻す]、[シャッフル]、[ヘルプ]、[終了]のボタンがあります。ここではサンプルコードは次のとおりです。JButtonが特定のJPanel内にあるかどうかをチェック
JPanel header = new JPanel();
JButton submit = new JButton("Submit");
header.add(submit);
JButton undo= new JButton("Undo");
header.add(undo);
JButton shuffle= new JButton("Shuffle");
header.add(shuffle);
JButton help= new JButton("Help");
header.add(help);
JButton quit = new JButton("Quit");
header.add(quit);
さらに私のコードの下、私はクリックされたボタンは、(他のパネルのボタンがあまりにもあります)、ヘッダーパネルにないことを確認する必要があります。
public void actionPerformed(ActionEvent e)
{
String clicked = e.getActionCommand();
if(!clicked.equals("Submit") && !clicked.equals("Undo") && !clicked.equals("Help")&& !clicked.equals("Quit") && !clicked.equals("Shuffle")){
//some code here
クリックされたボタンは、ヘッダーパネルでないことを確認するための任意の別の滑らかな印象の方法はありますか?より多くのボタンを含む別のパネルで同様のことをする必要があります。 IF文を使って各ボタンをチェックするのは非効率的で不安定です。
ヘッダーパネルのボタンを異なる方法で処理する必要がある場合は、同じコールバックを使用しないでください。別の 'ActionEvent'リスナーを設定してください – flakes
イベントソースを使用して、Stringsの代わりにインスタンスを比較してください。 – Mordechai
うーん、私はあなたが直面している問題は何か分かりません。 1つのアクションリスナーまたは複数のリスナーを使用することは、それらを含む親コンテナとは何の関係もありません。ボタンが特定のJPanel内にあるかどうかを確認する必要があるのはなぜですか? – user3437460