java - 如果没有 setEnabled(false),如何将 JButton 组件设置为不可点击?

标签 java swing user-interface jbutton

我一直在网上搜索这个问题,但没有找到解决方案。

我有一个 JButton 的二维数组。当用户单击该按钮时,我的应用程序当前会向该按钮添加一个 ImageIcon,并对按钮执行 setEnabled(false)。

这样做的问题是图像变灰。我希望图像保持全彩,但我想让 JButton 不可单击。看来 setEnabled() 不是我想要的方法。

我考虑过从中删除 ActionListener,但这仍然允许单击操作(即使什么也不会发生)。

如何在不禁用 JButton 或删除 ActionListener 的情况下使 JButton 不可点击?

最佳答案

JButton 通过将原始图标变灰来派生禁用图标。如果您希望禁用按钮但仍使图标为全彩,请使用以下方法将其禁用图标显式设置为全彩图像

button.setDisabledIcon(button.getIcon());

查看 AbstractButton#setDisabledIcon(Icon) 的 javadoc

关于java - 如果没有 setEnabled(false),如何将 JButton 组件设置为不可点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31678311/

相关文章:

java - session 超时后如何重定向到指定页面

java - showInputDialog 使 "if"工作错误

java - 从 SQL Server 成功检索数据后 JTable 为空

java - java.lang.Object 怎么可能用 Java 实现?

java - Tomcat 被杀死时 Quartz 当前正在执行的作业

java - 为什么按键绑定(bind)会消失?

java - 为什么这个 Swing 登录表单显示错误?

winforms - 文本框与标签

多维数组中的Java空指针异常

xcode - 我应该在 XCode IB 中使用哪个对象?