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

Java 禁用按钮时如何阻止文本变灰?,java,swing,Java,Swing,我当前的java版本是: $java -version java version 1.8.0_40 我对swing非常陌生,我正试图编写我的第一个扫雷应用程序。现在,我需要在点击按钮时禁用它,并打印一些相邻的地雷(根据数字使用适当的文本颜色:1-蓝色、2-绿色、3-红色等)。因此,正如在中所建议的,我写了以下内容: JFrame frame = new JFrame("Hello swing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_C

我当前的java版本是:

$java -version
 java version 1.8.0_40
我对swing非常陌生,我正试图编写我的第一个扫雷应用程序。现在,我需要在点击按钮时禁用它,并打印一些相邻的地雷(根据数字使用适当的文本颜色:1-蓝色、2-绿色、3-红色等)。因此,正如在中所建议的,我写了以下内容:

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); });
JFrame=newjframe(“Hello swing”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel面板=新的JPanel();
JButton button=新JButton();
addActionListener((ActionEvent ev)->{
按钮。设置选择(真);
按钮设置文本(“3”);
按钮。setEnabled(false);});
但禁用时仍会变为灰色:

但已启用的按钮看起来与我希望的一样:

如何处理这个问题?如何通过禁用按钮解决此问题

也许你知道一些解决办法

使用图标而不是文本

然后您可以使用:

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

您是否尝试过在禁用文本后设置它?可能是禁用按钮会覆盖格式。@CubeJockey刚刚尝试过,结果是一样的……可能是重复的,看起来你们使用的是同一本教科书。有趣。谢谢你的反馈,我会留意的。@PeteBelford是的,我检查了这个答案。但我使用的是jre_1.8。也许它与此有关…?工作完美,但我还必须调用
setIcon(icon3)
,以确保解除的图标正常工作。看起来有点像奇迹。。。为什么没有
设置图标(icon3)
它就不能工作?@DmitriiBundin禁用的图标用于替换原始图标,而不是文本。文本和图标并排绘制是没有意义的。