JButton - 设置按下后显示的颜色?

时间:2013-04-04 21:19:40

标签: java swing jbutton

我希望在按下时更改JButton的外观。而不是使背景为深灰色(默认),我希望它是蓝色的。我查看了这篇文章,发现它使用了JButton.setPressedIcon(图片图片) - Making Image button look pressed/clicked in Swing

我不想改变图片。我只想在按下按钮时将背景颜色更改为非默认值。

我该怎么做?是否可以在没有任何覆盖或创建新课程的情况下完成?

3 个答案:

答案 0 :(得分:4)

您可以在自定义paintButtonPressed()中覆盖ButtonUI。我们看到了一个相关的例子here

答案 1 :(得分:1)

答案 2 :(得分:0)

public class CustomMetalButtonUI extends MetalButtonUI {
    @Override
    protected Color getSelectColor() {
        return new Color(166, 66, 66); // Color
    }
}

或者...

public class CustomMetalButtonUI extends BasicButtonUI {
    @Override
    protected void paintButtonPressed(Graphics g, AbstractButton b) {
        if (b.isContentAreaFilled()) {
            Dimension size = b.getSize();
            g.setColor(new Color(166, 66, 66)); // Color
            g.fillRect(0, 0, size.width, size.height);
        }
    }
}