java JPanel图形清除和重新绘制?
我有一个带有paintComponent()
函数的JPanel
。我将调用它一次,然后当用户单击另一个JButton
时,我将设置一些标志,并希望再次调用此函数,因为在设置标志后,它将执行一些稍微不同的操作
所以我想知道的是:如何从paintComponent
中清除现有的内容?要重新绘制,我是否需要再次调用^{
目前我正在尝试以下方法:
flag2 = true;
repaint(); //I expect (want) paintComponent to be called again
在paint component中,我会做如下工作:
if (flag2==true) {
g.drawRect(...);
} else {
g.drawLine(...);
}
但通过测试,我现在做的似乎有问题
谢谢你的帮助
# 1 楼答案
首先,为什么不使用枚举而不是布尔值
关于你的问题,你能回答我对你问题的评论吗
# 2 楼答案
更改配电盘的属性时,需要调用:
使部件重新喷漆
那么paintComponent()方法中的第一条语句应该是:
这将绘制背景,以便您现在可以进行自定义绘制
如果你需要更多的帮助,那么发布你的SSCCE来说明问题
# 3 楼答案
要清除所有以前绘制的图形,请调用^{}