我希望在按下时更改JButton的外观。而不是使背景为深灰色(默认),我希望它是蓝色的。我查看了这篇文章,发现它使用了JButton.setPressedIcon(图片图片) - Making Image button look pressed/clicked in Swing
我不想改变图片。我只想在按下按钮时将背景颜色更改为非默认值。
我该怎么做?是否可以在没有任何覆盖或创建新课程的情况下完成?
答案 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);
}
}
}