JButton - 设置按钮被按下时显示的颜色?

问题描述 投票:-1回答:3

我想改变一个JButton被按下时的外观。我不想让背景变成深灰色(默认),而是想让它变成蓝色。我看了这个帖子,发现它使用了JButton.setPressedIcon(Icon image) ---------。在Swing中使图像按钮看起来像被按下点击的样子

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

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

java swing jbutton
3个回答
4
投票

你可以覆盖 paintButtonPressed() 在您的自定义 ButtonUI. 一个相关的例子是 此处.


1
投票

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);
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.