【发布时间】:2013-09-05 12:29:19
【问题描述】:
如何知道paintComponent(Graphics g) 已经完成了它的工作?
我能做到:
@Override
public void paintComponent(Graphics g) {
try {
//Paint some stuff
} finally {
//Do something after painting
}
}
还有其他方法吗?
【问题讨论】:
-
这对我来说似乎是一个奇怪的要求,让我问:你画完之后想做什么?希望没有程序逻辑会进入该方法,但我担心您实际上已经这样做了。为什么要显示
paint(...)而谈论paintComponent(...)方法? -
您可以覆盖
paintComponent()并调用super.paintComponent(),之后该调用显然已完成,但我也很好奇您要做什么。看起来很可疑,就像您将绘图与完全不相关的东西混合在一起。 -
感谢您的编辑(虽然应该保护paintComponent),但仍然请说明您的请求背后的理由。
-
我创建了按钮(简单的JComponent),它必须先淡出(鼠标松开后改变颜色),然后执行
actionlistener.actionPerformed(someEvent)。如果我在按钮完全重绘之前执行repaint(); actionlistener.actionPerformed(someEvent);操作。
标签: java swing graphics paintcomponent