1

2 つの JButton を持つ GUI があり、getSource メソッドを使用してどちらがイベントを発生させているかを知りたいです。問題の解決策をGoogle全体で探しましたが、見つけることができませんでした。これが私のコードです:

@Override
public void actionPerformed(ActionEvent event){
    if (event.getSource() == btn1){
        System.out.println("this should work");
    }else if (event.getSource() == btn2){
        System.out.println("this should work as well");
    }

どちらのボタンを押しても何も印刷されません。これも試しました:

 @Override
 public void actionPerformed(ActionEvent event){
     if ((JButton)event.getSource() == btn1){
         System.out.println("this should work");
     }else if ((JButton)event.getSource() == btn2){
         System.out.println("this should work as well");
    }

しかし、それもうまくいきませんでした。

誰かが何が悪いのか教えてもらえますか?

4

3 に答える 3

0

コードの問題:

あなたbtn1btn2ヒープ内の同じボタンインスタンスを指していません。それらが同じではないことを意味します。elseあなたも同じ条件を持っているので、これは何も印刷しません。

解決策:

ボタンのテキストを使用して、押されたボタンを検出します。

((JButton)event.getSource()).getText().equals("mybutton")
于 2013-05-26T04:46:42.600 に答える