2011-09-22 8 views
10

私は右の作業私のボタンを持っている、と私はこのような各ボタンにリスナーです:あなたは、リスナーが呼び出される見ることができる、と私は「どのボタンを知りたいとここでクリックされたボタンはどのようにして知ることができますか?

for(int i = 0; i <= 25; ++i) { 
    buttons[i] = new Button(Character.toString(letters[i])); 
    buttons[i].addActionListener(actionListener); 
    panel1.add(buttons[i]); 
} 

mをクリックします。それを行う方法はありますか?

ActionListener actionListener = new ActionListener() { 
    public void actionPerformed(ActionEvent actionEvent) { 
     System.out.println(actionEvent.getSource()); 
    } 
}; 

配列内のボタンを見つけるには何らかの方法が必要です。

+1

キャストボタンに最初のソース、ラベルの取得((ボタン)actionEvent.getSource())。getLabel()... – Rudy

答えて

21

はラベルを取得するために、この

ActionListener actionListener = new ActionListener() 
{ 
     public void actionPerformed(ActionEvent actionEvent) { 

      System.out.println(actionEvent.getActionCommand()); 
     } 
    }; 
+0

wowは本当にありがとうございます。確かにたくさんのものがありますが、いくつかの機能はすばらしです。 – Makenshi

+0

[こちら](http://download.oracle.com/javase/7/docs/api/java/awt/event/ActionEvent.html) #method_summary)( 'ActionEvent'が継承するクラスへのリンクをたどり、それらのメソッドも確認してください)。 JavaDocs - この種のものにとっては非常に便利です。 ;) –

5

ActionEventには、JButtonのactionCommand Stringを取得するgetActionCommand()メソッドがあります。これは通常、テキスト(JButton用)です。

+0

+1)'が、特に用*「これは通常**テキストです」*(強調する鉱山)です。 –

5

を試してみてください、これを試してみてください。 `getActionCommandを(言及ため

その後、
ActionListener actionListener = new ActionListener() 
{ 
     public void actionPerformed(ActionEvent actionEvent) { 
      JButton button = (JButton)actionEvent.getSource(); 
      String label = button.getLabel(); //Deprecated 

      String label2 = button.getText(); 
    } 
}; 
0
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
l1.setText("");//name of level what you want 

t1.setText(null);//text field what you want 

t2.setText(null);//text field what you want 
} 
+3

私はあなたが誰の質問に答えているのか分かりませんが、それはMakenshiによって質問されたようではありません。 –

関連する問題