Java - значок / изображение серого цвета на отключенном JButton - PullRequest
1 голос
/ 24 января 2012

Я делаю тральщик для школьного проекта. Когда игрок выигрывает или проигрывает, мины раскрываются. Их кнопки отключены, и появятся значки флагов / мин. Проблема в том, что значки становятся серыми, когда кнопки отключены. Есть ли способ обойти это?

Я также пытался установить текст JButton на что-то вроде "<html><img src=\"res\\mine.png\"/></html>", но он показал странное изображение.

Обновление: Я пытался использовать setDisabledIcon(), но ничего не появляется. Вот какой-то псевдокод

Кнопками, которые я использую для минного поля, является класс Field, который расширяет JButton

mouseReleased(mouseEvent e) {
    Field fieldClicked = (Field)e.getSource();

    if fieldClicked is mine {
        fieldClicked.setEnabled(false);
        gameTimer.stop();
        setLost(true);

        loop through 2D array of fields {
            if field is a mine {
                field.setDisabledIcon(Field.mineIcon);// public static final icon of Field. mineIcon = new ImageIcon("res\\mine.png")
                field.setEnabled(false);
            }
        }
    }
}

Ответы [ 3 ]

5 голосов
/ 25 января 2012

Понял это в тесте

По какой-то причине

clickedButton.setDisabledIcon(mineIcon)

Один ничего не делает.

Но:

clickedButton.setIcon(mineIcon)
clickedButton.setDisabledIcon(mineIcon)

Покажет любую иконку, которую я хотел

3 голосов
/ 24 января 2012

JButton фактически разрешает семь связанных изображений: основное изображение (использование setIcon, чтобы указать его, если он не указан в конструкторе), изображение использовать при нажатии кнопки (setPressedIcon), изображение для использования когда мышь находится над ним (setRolloverIcon, но вам нужно вызвать setRolloverEnabled (true) first), изображение для использования, когда кнопка выбрано и включено (setSelectedIcon), изображение для использования при кнопка отключена (setDisabledIcon) , изображение для использования, когда оно выбран, но отключен (setDisabledSelectedIcon), и изображение для использования когда мышь находится над ней, пока она выделена (SetRolloverSelectedIcon). - http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-JButton.html

, поэтому используйте setDisabledIcon (ImageIcon)

2 голосов
/ 24 января 2012

Серое изображение - это автоматически генерируемое изображение. Если вам нужен другой значок, используйте setDisabledIcon ()

Icon disabledIcon = new ImageIcon("youricon.gif");
button.setDisabledIcon(disabledIcon);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...