Java - 禁用的JButton上的图标/图像是灰色的

时间:2012-01-24 00:41:24

标签: java image swing icons

我正在为一个学校项目做扫雷。当玩家获胜或失败时,地雷将被揭露。他们的按钮被禁用,标志/地雷的图标将出现。问题是禁用按钮时图标变为灰色。有办法解决这个问题吗?

我也尝试将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 个答案:

答案 0 :(得分:5)

在测试中计算出来

出于某种原因

clickedButton.setDisabledIcon(mineIcon)

独自无所作为。

可是:

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

将显示我想要的任何图标

答案 1 :(得分:3)

  

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 :(得分:2)

灰色图像是自动生成的图像,如果您想要不同的图标,请使用setDisabledIcon()

Icon disabledIcon = new ImageIcon("youricon.gif");
button.setDisabledIcon(disabledIcon);