我看到一种奇怪的行为。 L&F组合是金属。
UIManager.setLookAndFeel(“ javax.swing.plaf.metal.MetalLookAndFeel”);
如果我在JPanel上设置Border border1,则在同一JPanel上将Border更改为border2,当工具提示通过border2时,重新绘制边界1。这仅发生在L&F Metal,带有LineBorder,TitledBorder。...
答案 0 :(得分:1)
仅在Metal L&F中发生。
即使您没有专门设置LAF,您仍然有问题。
如果我在一个JPanel上设置了Border border1,则在同一JPanel上将Border更改为border2,当工具提示通过border2时,重新绘制边框1的重绘
与工具提示无关。
只需单击几个正方形,然后调整框架的大小,所有边框就会重新粉刷成蓝色。
问题出在您的ColorsBoard
班上。
您不应覆盖paintComponent()
方法来创建组件。
一种绘画方法仅用于绘画。
每当Swing确定需要重新绘制组件时,都会调用paintComponent()方法。这就是为什么调整框架大小也会导致问题的原因。您正在重新创建所有组件。
解决方案:
setBackground(Color.LIGHT_GRAY)
设置背景也:
synchronized
关键字。不需要它们。equals(...)
方法。答案 1 :(得分:0)
INDIRECT