GTK Look and Feel определяет свой собственный способ визуального представления кнопки, поэтому, когда вы используете «button.setBackground (Color.ORANGE)», он только меняет фон кнопки, а затем GTK Look and Feel рисует свой собственный (серый) представление кнопки поверх фона.
Если вам нужна простая кнопка оранжевого цвета, вы можете изменить пользовательский интерфейс кнопки на свой собственный, например:
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 );
}
}
В этом примере кода будет создана кнопка, которая серого цвета при нажатии и оранжевого цвета, когда ее нет.
Конечно, вы можете стилизовать картину так, как вам нравится, и изменить вид кнопки.