我希望能够等待Swing的repaint
完成。
例:
frame.repaint();
wait_for_repaint_to_finish();
//work
我有这样的事情:
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
try {
frame.repaint();
} catch (Exception e) {
e.printStackTrace();
}
}
});
这是正确的方法吗?
最佳答案
问题是为什么您需要这样的东西?您为什么要重新粉刷整个框架并等待它完成。如果我们知道您要尝试的操作,我们可能会给出更好的建议。
repaint()只是计划绘画完成。 RepaintManager可能会合并多个绘画请求,并一次执行,以提高绘画效率。
话虽如此,如果您真的需要强制重新粉刷,可以使用
JComponent.paintImmediately(...);
但这仅应作为最后的手段,而不能解决设计问题。
关于java - 等待Swing的元素重新绘制完成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5133429/