从位于单独类中的侦听器禁用JButton

时间:2013-11-01 06:56:26

标签: java swing jbutton actionlistener

我正在写一个非常大的课程,不想在这里发帖。问题如下,我如何引用在另一个类的构造函数中按下的按钮?让我们说,我想在侦听器中执行某些操作后禁用它。如果监听器是anonymus或者是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            
        }        
    }    
}

1 个答案:

答案 0 :(得分:1)

试试这个((JButton)e.getSource()).setEnabled(false)

必须有效)

e.getSource()返回此事件引用的组件(docs