Подтвердить что ты не робот

Как установить цвет фона кнопки в графическом интерфейсе Java?

Ниже приведен код, который создает 9 кнопок в форме gridlayout на определенном pannel3. Я хочу, чтобы фон каждой кнопки черный с серым текстом над ним. Может ли кто-нибудь помочь?

 for(int i=1;i<=9;i++)
 {
     p3.add(new JButton(""+i));
 }
4b9b3361

Ответ 1

Ознакомьтесь с JButton. Особое внимание обратите на методы setBackground и setForeground, унаследованные от JComponent.

Что-то вроде:

for(int i=1;i<=9;i++)
{
    JButton btn = new JButton(String.valueOf(i));
    btn.setBackground(Color.BLACK);
    btn.setForeground(Color.GRAY);
    p3.add(btn);
}

Ответ 2

Простой:

btn.setBackground(Color.red);

Чтобы использовать значения RGB:

btn[i].setBackground(Color.RGBtoHSB(int, int, int, float[]));

Ответ 3

for(int i=1;i<=9;i++) {
    p3.add(new JButton(""+i) {{
        // initialize the JButton directly
        setBackground(Color.BLACK);
        setForeground(Color.GRAY);
    }});
}

Ответ 4

Возможно, вам может понадобиться использовать метод setOpaque, чтобы убедиться, что цвета отображаются, передав true методу.

Ответ 5

Используйте setBackground для установки фона и setForeground, чтобы изменить цвет текста. Обратите внимание, однако, что помечать серый текст на черном фоне может сделать ваш текст немного трудным для чтения.

Ответ 6

Изменение свойства фона может быть недостаточным, поскольку компонент больше не будет выглядеть как кнопка. Возможно, вам понадобится повторно реализовать метод рисования, как в здесь, чтобы получить лучший результат:

enter image description here

Ответ 7

Кажется, что метод setBackground() не работает на некоторых платформах (я использую Windows 7). Я нашел этот ответ на этот вопрос полезным. Однако я не использовал его полностью для решения моей проблемы. Вместо этого я решил, что было бы намного проще и почти эстетично раскрашивать панель рядом с кнопкой.