我在设置JButton的背景颜色时遇到了麻烦。
例如,当我做button.setBackground(Color.ORANGE)
时我得到了这个
但是当我禁用GTK外观时感觉还可以。 设置背景的另一种方法是什么? 感谢。
答案 0 :(得分:2)
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 );
}
}
此代码示例将创建一个按下的按钮,按下时为灰色,未显示时为橙色。 当然,您可以根据需要设定绘画样式并更改按钮视图。