看一下错误4880747:XP L&F:REGRESSION:JButton上的setBackground设置Windows
XP中的边框颜色。评估部分指出:
更改按钮的外观总是会导致与当前的L&F实现冲突。Windows L&F for
Swing尝试尽可能接近本机显示。在XP上,我们将内置位图资源用于按钮。就像在本机API中一样,它们不能被着色。您应该在按钮上调用setContentAreaFilled(false)以避免L&F绘制其装饰。这样做的副作用是按钮的opaque属性设置为false,因此您需要在该调用之后调用setOpaque(true)。
这不是错误,将被关闭。
如前所述,
setContentAreaFilled(false)并
setOpaque(true)可以解决问题,但是按钮看起来会有所不同。
如果麻烦值得的话,您可以创建自己的
ButtonUI。这是@mKorbel的一个很好的示例,您可能会发现它很有用。



