0

我想在按下 JButton 时改变它的外观。我不希望将背景设为深灰色(默认),而是将其设为蓝色。我查看了这篇文章,发现它使用了 JButton.setPressedIcon(Icon image) -使图像按钮看起来在 Swing 中被按下/单击

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

我怎样才能做到这一点 ?是否可以在不覆盖或创建新类的情况下做到这一点?

4

3 回答 3

4

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

于 2013-04-04T21:25:21.683 回答
1

同样的情况,有解决方案。见链接:

http://www.coderanch.com/t/346459/GUI/java/JButton-onClick-change-background-color

于 2013-04-04T21:24:37.300 回答
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);
        }
    }
}
于 2020-05-25T16:26:49.323 回答