我想在按下 JButton 时改变它的外观。我不希望将背景设为深灰色(默认),而是将其设为蓝色。我查看了这篇文章,发现它使用了 JButton.setPressedIcon(Icon image) -使图像按钮看起来在 Swing 中被按下/单击
我不想改变图像。我只想在按下按钮时将背景颜色更改为非默认值。
我怎样才能做到这一点 ?是否可以在不覆盖或创建新类的情况下做到这一点?
我想在按下 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);
}
}
}