我希望能够等待 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/