我意识到这听起来很多很多已发布的问题,但请仔细阅读;这有一个看似相似的问题,但没有与许多已经提供的解决方案合作。更改JButton的被禁用的前景(字体)颜色为Windows
我目前使用Eclipse在OS X和Windows上编写Java。使用OS X,我有一个从.setEnabled(true)到.setEnabled(false)的JButton。发生这种情况时,由于它被禁用,我通过.setBackground(someColor)更改其背景颜色。整个过程发生时,前景(字体)颜色不会改变并保持黑色。这就是我想要的,它是完美的。
然后出现Windows的问题。和上面一样,我有一个从.setEnabled(true)到.setEnabled(false)的JButton。我也通过.setBackground(someColor)更改背景。但是,发生这种情况时,前景(字体)颜色不会保持不变 - 它会从黑色变为浅灰色。这非常不方便,并且使用新的背景颜色阅读起来非常困难。
所以问题是:如何更改禁用的JButton的前景色?
我已经试过如下:
button.setForeground(Color.BLACK);
button.setText(<html><font color = black>BUTTON</font></html>);
UIManager.put("Button.disabledText", Color.BLACK);
UIManager.getDefaults().put("Button.disabledText", Color.BLACK);
UIManager.put("Button.foreground", Color.BLACK);
UIManager.getDefaults().put("Button.foreground", Color.BLACK);
,可是没有工作。我也尝试了以下操作:
- 将OS X导出到.jar文件,然后在Windows中使用它。 Windows字体颜色仍然会更改。
- 编译OS X的.app文件和Windows的.exe文件。问题依然存在。
是否有任何其他解决方案在那里,我忽略了?
目前,我已经采取了将字体作为目前难看的灰色,并将背景(由于某种原因,仍然可以很容易地通过.setBackground()更改为其他颜色适应它。
那么为什么OS X和Windows之间似乎有这种颜色差异?我更喜欢OS X配色方案,但我并不想为本质上相同的程序设置两组代码。
我该怎么办?
设置按钮的背景色似乎是一个非常糟糕的主意(1),除非设计PLAF。话虽如此,为了更快提供更好的帮助,请发布[SSCCE](http://sscce.org/)。 1)*“我更喜欢OS X配色方案”*如果您的用户偏爱OS X配色方案,他们可能会*使用* OS X! – 2013-05-01 13:01:27
你可以给出一些你想要的颜色。并且请为SSCCE – Hydroid 2013-05-01 13:04:58
为什么不使用JToggleButton呢? – Azad 2013-05-01 13:26:15