Цвет фона и GTK Look and Feel - PullRequest
       34

Цвет фона и GTK Look and Feel

3 голосов
/ 05 февраля 2012

У меня проблемы с настройкой цвета фона для кнопок J.Например, я получаю это, когда я button.setBackground(Color.ORANGE) enter image description here

Но когда я отключаю GTK Look and Feel, все в порядке.Еще один способ установить фон?Спасибо.

1 Ответ

2 голосов
/ 22 марта 2012

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 );
    }
}

В этом примере кода будет создана кнопка, которая серого цвета при нажатии и оранжевого цвета, когда ее нет. Конечно, вы можете стилизовать картину так, как вам нравится, и изменить вид кнопки.

...