java - 如何在 java 中禁用 javax.swing.JButton?

标签 java user-interface jbutton

我创建了一个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

您需要将该代码放在使用“开始”按钮注册的 ActionListeneractionPerformed(...) 中,而不是用于“开始”按钮本身。

你可以像这样添加一个简单的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/

相关文章:

java - 在带有彩色背景的 Canvas 上绘制位图(来自可绘制对象)

java - SWIG 将生成的类从不同的模块和包导入当前类

java - 编写 Java 代码需要域名吗?

java - 将 JSON 对象列表转换为单个 JSON 数组

html - 用于曲线气泡聊天的 CSS 样式

Java-图形用户界面 : adding a door

java - 制作两个选项窗口的最佳方法是什么?

html - 在网页上显示额外信息哪个更好?单击或悬停时弹出?

java - 如何制作JButton图标透明,文字不透明?

java - 重写 JButton 中的 Paint() 方法