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