java - 禁用按钮时如何阻止文本变灰?

标签 java swing

我当前的java版本是:

$java -version
 java version 1.8.0_40

我对 swing 很陌生,正在尝试编写我的第一个扫雷应用程序。现在,我需要在单击按钮时禁用该按钮并打印许多相邻的地雷(根据数字使用适当的文本颜色:1-蓝色、2-绿色、3-红色等)。正如 this answer 中所建议的那样我写了以下内容:

JFrame frame = new JFrame("Hello swing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
JButton button = new JButton();
button.addActionListener((ActionEvent ev) -> { 
                        button.setSelected(true);  
                        button.setText("<html><font color = red>3</font></html>");
                        button.setEnabled(false); });

但是禁用时它仍然变灰:

enter image description here

但是启用的按钮看起来就像我想要的那样:

enter image description here

遇到这个问题该怎么办?如何通过禁用按钮来解决此问题?

最佳答案

Maybe you know some workarounds

使用图标而不是文本。

然后你可以使用:

JButton button = new JButton( icon3 );
button.setDisabledIcon( icon3 );

关于java - 禁用按钮时如何阻止文本变灰?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36652457/

相关文章:

java - JOptionPane 是否阻塞事件线程

java - JScrollPane JPanel 和布局

java.lang.IllegalStateException : Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $

java - 加密短字符串时,非随机初始化 vector 仍然不好吗?

java - 使用 CardLayout 更改 JPanel 的大小

java - 如何使用 Mask 从 JFormattedTextField 获取日期

java - 二叉 TreeMap 形表示的麻烦

java - JEdi​​torPane、JScrollPane 和辅助功能

java - 在 Java MapReduce 作业中写入 Hive

java - 使用动态规划的斐波那契数列