如何在Java中禁用javax.swing.JButton?
问题内容:
我创建了一个swings应用程序,并且GUI上有一个“开始”按钮。我希望每当我单击该“开始”按钮时,都应禁用开始按钮,并启用“停止”按钮。
为此,我在“开始”按钮的“ ActionPeformed(…)”方法中编写了以下代码
startButton.setEnabled(false);
stopButton.setEnabled(true);
但是以上代码并未在GUI上产生所需的影响。
上面的代码对我想要做的正确吗?
它也不能与“ repaint()”一起使用。
编辑:
代码很长,所以我不能粘贴所有代码。我可以告诉更多有关代码的信息。
在“开始”按钮的“ ActionPeformed”方法中,调用以上两个语句后,我正在执行“ SwingWorker”线程。
这个线程有什么问题吗?
问题答案:
为此,我在“开始”按钮的“ ActionPeformed(…)”方法中编写了以下代码
你需要的代码是在actionPerformed(...)
的ActionListener
使用开始按钮注册,而不是开始按钮本身。
您可以添加一个简单的ActionListener
如下:
JButton startButton = new JButton("Start");
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
startButton.setEnabled(false);
stopButton.setEnabled(true);
}
}
);
请注意,final
如果要在本地范围内创建匿名侦听器,则上述示例中的startButton将需要在上面的示例中。