如何在java中更改禁用的JButton的外观

如何在java中更改禁用的JButton的外观,java,colors,jbutton,Java,Colors,Jbutton,我正在制作一个游戏,当我用setEnabled(false)禁用一个按钮时按钮变为灰色,与游戏中的其他颜色冲突。它们是在按钮被禁用时更改按钮颜色的一种方法吗?您需要修改正在使用的按钮。有很多东西可供下载,你当然可以自己制作。你也可以用设置一个禁用图标。我不是100%同意这一点,但我认为你可以覆盖按钮玻璃窗格的绘制方法,用你选择的颜色覆盖它 以下是关于容器窗格的教程: 如果您正在谈论文本,则可以使用UIManager更改禁用的前景色。查看。您可以将HTML编码添加到按钮中,这为按钮提供了很大的灵活

我正在制作一个游戏,当我用
setEnabled(false)禁用一个按钮时按钮变为灰色,与游戏中的其他颜色冲突。它们是在按钮被禁用时更改按钮颜色的一种方法吗?

您需要修改正在使用的按钮。有很多东西可供下载,你当然可以自己制作。

你也可以用设置一个禁用图标。

我不是100%同意这一点,但我认为你可以覆盖按钮玻璃窗格的绘制方法,用你选择的颜色覆盖它

以下是关于容器窗格的教程:


如果您正在谈论文本,则可以使用UIManager更改禁用的前景色。查看。

您可以将HTML编码添加到按钮中,这为按钮提供了很大的灵活性,甚至是禁用的按钮

Example: button.setText("<html><font color = red>3</font></html>");
示例:button.setText(“3”);

在按钮上调用设置内容区域填充(false)会使按钮看起来好像已禁用,即使未禁用。然而,它似乎并没有起到相反的作用

如果你不需要你的按钮看起来是启用的,那么这是一个很好的修复


按钮的
按钮ui
控制禁用的文本颜色。幸运的是,您可以更改它:

button1.setUI(new MetalButtonUI() {
    protected Color getDisabledTextColor() {
        return Color.BLUE;
    }
});
button1.setEnabled(false);
button2.setUI(new MetalButtonUI() {
    protected Color getDisabledTextColor() {
        return Color.RED;
    }
});
button2.setEnabled(false);

最好且简单的解决方案是:

yourButton.setContentAreaFilled(false);
只需将布尔值更改为true即可轻松恢复:

yourButton.setContentAreaFilled(true);

单个组件没有玻璃窗格。玻璃窗格适用于整个框架。作为一个快速解决方案,效果很好!我和问题发起者有同样的问题,我正在编写一个小游戏,这个游戏经常使用禁用的按钮。