我在设置JButtons的背景颜色时遇到了麻烦。
例如, 当我执行button.setBackground(Color.ORANGE)
时,会出现这种情况:
但是,当我禁用GTK外观时,一切都正常。 还有其他设置背景的方法吗? 谢谢。
我在设置JButtons的背景颜色时遇到了麻烦。
例如, 当我执行button.setBackground(Color.ORANGE)
时,会出现这种情况:
但是,当我禁用GTK外观时,一切都正常。 还有其他设置背景的方法吗? 谢谢。
GTK外观定义了自己的方式来视觉呈现按钮,因此当您使用“button.setBackground(Color.ORANGE)”时,它仅更改按钮底层背景,然后GTK外观会在其上方绘制自己(灰色)的按钮表示。
如果您想要一个简单的橙色按钮,可以为自己的UI更改按钮,例如:
public static void main ( String[] args )
{
JButton orangeButton = new JButton ( "X" );
orangeButton.setUI ( new MyButtonUI ());
}
private static class MyButtonUI extends BasicButtonUI
{
public void paint ( Graphics g, JComponent c )
{
JButton myButton = ( JButton ) c;
ButtonModel buttonModel = myButton.getModel ();
if ( buttonModel.isPressed () || buttonModel.isSelected () )
{
g.setColor ( Color.GRAY );
}
else
{
g.setColor ( Color.ORANGE );
}
g.fillRect ( 0, 0, c.getWidth (), c.getHeight () );
super.paint ( g, c );
}
}
这个代码示例将创建一个按钮,当按下时为灰色,未被按下时为橙色。当然,您可以根据自己的喜好样式化绘画并更改按钮视图。