我创建了一个swings 应用程序,并且GUI 上有一个“开始”按钮。我希望每当我点击那个“开始”按钮时,应该禁用开始按钮并启用“停止”按钮。
为此,我在“开始”按钮的“ActionPeformed(...)”方法中编写了以下代码
startButton.setEnabled(false);
stopButton.setEnabled(true);
但上面的代码并没有对 GUI 产生预期的影响。
上面的代码对我想做的事情是否正确?
它也不适用于“repaint()”。
编辑:
代码很长,我无法粘贴所有代码。不过,我可以告诉你更多关于代码的信息。
在“开始”按钮的“ActionPeformed”方法中,调用上述两条语句后,我正在执行一个“SwingWorker”线程。
这个线程有什么问题吗?
最佳答案
For that I have written the following code in the "ActionPeformed(...)" method of the "Start" button
您需要将该代码放在使用“开始”按钮注册的 ActionListener
的 actionPerformed(...)
中,而不是用于“开始”按钮本身。
你可以像这样添加一个简单的ActionListener
:
JButton startButton = new JButton("Start");
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
startButton.setEnabled(false);
stopButton.setEnabled(true);
}
}
);
请注意,如果您想在本地范围内创建匿名监听器,则上述示例中的 startButton 需要为 final
。
关于java - 如何在 java 中禁用 javax.swing.JButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1625855/