Как изменить внешний вид отключенного JButton в java

Я делаю игру, и когда я выключаю кнопку с setEnabled(false);, кнопки становятся серыми, которые сталкиваются с другими цветами в игре. Их способ изменить цвет кнопки при ее отключении?

Ответ 1

Вы можете добавить HTML-код к своей кнопке, что дает большую гибкость, даже для отключенных кнопок.

Example: button.setText("<html><font color = red>3</font></html>");

Ответ 2

Если вы говорите о тексте, вы можете использовать UIManager для изменения цвета отключенного переднего плана. Проверьте UIManager Defaults.

Ответ 3

Вызов setContentAreaFilled (false) на кнопке заставит кнопку выглядеть так, как будто она отключена, даже если это не так. Однако, похоже, он не работает наоборот.

Если вам не нужно, чтобы ваша кнопка выглядела включенной, то это хорошее исправление.

Документы Oracle

Ответ 4

Вы хотите изменить Look and Feel, который вы используете. Есть тонн доступны для загрузки, и вы можете, конечно, сделать свой собственный.

Ответ 5

Вы также можете установить значок отключения JButton.setDisableIcon()

Ответ 6

Кнопка ButtonUI управляет отключенным цветом текста. К счастью, вы можете изменить его:

button1.setUI(new MetalButtonUI() {
    protected Color getDisabledTextColor() {
        return Color.BLUE;
    }
});
button1.setEnabled(false);
button2.setUI(new MetalButtonUI() {
    protected Color getDisabledTextColor() {
        return Color.RED;
    }
});
button2.setEnabled(false);

Ответ 7

Я не на 100% на это, но я думаю, что вы можете перезаписать метод рисования на стекле на кнопке, чтобы наложить его на цвет по вашему выбору.

вот учебник на панелях контейнера:

http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html