0

私はかなり大きなクラスを書いているので、ここに投稿したくありません。問題は次のとおりです。別のクラスのコンストラクターで押されたボタンを参照するにはどうすればよいですか? たとえば、リスナーでいくつかのアクションを実行した後、無効にしたいとします。リスナーが匿名であるか、SomeClass の内部クラスである場合、次のように変数の名前を使用します。

button.setEnabled(false);

しかし、リスナーが別のクラスの場合、どうすればよいでしょうか? e.getModifiers().setEnabled(false) と e.getSource().setEnabled(false) を使用しようとしましたが、うまくいきませんでした。

public class SomeClass extends JPanel {
    private JButton button = new JButton("Button");
    public SomeClass() {
        button.setActionCommand("button");
        button.addActionListener(new ButtonListener());
    }


    public static void main(String[] args) {
        // TODO code application logic here
    }
}
class ButtonListener implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        String src = e.getActionCommand();
        if (src.equals("button")) {
            //some actions here
            //then            
        }        
    }    
}
4

1 に答える 1

1

これを試して((JButton)e.getSource()).setEnabled(false)

動作する必要があります)

e.getSource()このイベントが参照するコンポーネントを返す( docs )

于 2013-11-01T06:58:14.990 に答える