button[currRow][currCol].setBackground(Color.RED);
button[currRow][currCol].setContentAreaFilled(true);
button[currRow][currCol].setOpaque(true);
这就是我现在的四连网游戏,代表红色球员的举动。
目前,它只为背景着色,如果我将代码更改为button [currRow] [currCol] .setForeground(Color.RED),那么整个事情似乎就不会改变。我该如何解决?
最佳答案
这是不容易实现的。问题在于,可插入的外观会绘制按钮内容,并且会以其认为合适的方式进行绘制。例如,某些L&F可能会绘制不使用背景色的渐变。
对于像您这样的情况,我建议您使用自定义图像(JButton.setIcon()
)而没有内容区域(JButton.setContentAreaFilled(false)
)。
另外,您可以创建一个自定义组件来绘制元素本身,从而覆盖JComponent.paintComponent()
。