我正在尝试创建一个具有自定义形状(六边形)的按钮,但其他方式就像普通的JButton一样(也就是说,与ActionListener一起使用).
我创建了一个扩展AbstractButton的类,但是当我单击它时它似乎没有向ActionListener发送事件.如果我更改类以扩展JButton它可以很好地工作,但它会搞砸按钮的显示方式.我假设有一个方法需要覆盖以使其触发事件,但我无法弄清楚它是什么.
我有一个JButton我想将背景颜色改为白色.使用金属外观时,我可以达到预期的效果setBackground:

不幸的是,使用Windows LAF时"背景颜色"的概念是不同的; 背景颜色是按钮周围绘制的颜色:

我想使用Windows LAF,但允许将此按钮的颜色JButton更改为白色.我该怎么做呢?