我想改变一个JButton被按下时的外观。我不想让背景变成深灰色(默认),而是想让它变成蓝色。我看了这个帖子,发现它使用了JButton.setPressedIcon(Icon image) ---------。在Swing中使图像按钮看起来像被按下点击的样子
我不想改变图像。我只想在按钮被按下时将背景色改为非默认值。
我怎样才能做到这一点?是否可以在不覆盖或创建一个新类的情况下实现?
你可以覆盖 paintButtonPressed()
在您的自定义 ButtonUI
. 一个相关的例子是 此处.
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);
}
}
}