Java 从';她在另一个班

Java 从';她在另一个班,java,swing,jbutton,actionlistener,Java,Swing,Jbutton,Actionlistener,我正在写一个相当大的类,不想在这里发布。问题是,我如何引用在另一个类的构造函数中按下的按钮?比方说,我想在侦听器中执行某些操作后禁用它。如果侦听器是匿名的,或者是SomeClass的内部类,我只会使用变量的名称,如下所示: button.setEnabled(false); 但是,当我的侦听器是一个单独的类时,我该怎么做呢?尝试使用e.getModifiers().setEnabled(false)和e.getSource().setEnabled(false)无效 public class

我正在写一个相当大的类,不想在这里发布。问题是,我如何引用在另一个类的构造函数中按下的按钮?比方说,我想在侦听器中执行某些操作后禁用它。如果侦听器是匿名的,或者是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            
        }        
    }    
}
尝试此
((JButton)e.getSource()).setEnabled(false)

它必须工作)


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

是的,它确实有效,非常感谢。然而,在我看来,这种解决办法似乎是某种“欺骗”。我想知道是否有一种“官方”的方法来做这件事?这不是欺骗,而是官方的方法