【发布时间】:2011-10-17 16:22:20
【问题描述】:
我有一个 JPanel 和一个 paintComponent() 函数。我会调用一次,然后当用户单击不同的JButton 时,我会设置一些标志并想再次调用此函数,因为在设置标志后它会做一些稍微不同的事情。
所以这就是我想知道的:我如何从paintComponent 中清除现有的东西?要重绘,我是否只需再次调用paintComponent?
目前我正在尝试以下方法:
flag2 = true;
repaint(); //I expect (want) paintComponent to be called again
在绘画组件中,我做的事情如下:
if (flag2==true) {
g.drawRect(...);
} else {
g.drawLine(...);
}
但是通过测试,我的工作似乎有问题。
感谢您的帮助。
【问题讨论】:
-
你不是从paintComponent方法中调用repaint(),是吗?您确定 repaint() 调用与您要刷新的面板相关联吗? (例如 myPanel.repaint())?
标签: java swing graphics jpanel paintcomponent