java - 等待 Swing 的元素重绘完成

标签 java swing repaint

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

相关文章:

java - 获取抽象父类(super class)上泛型类型参数的实际类型

java - 使用 JAXB 注释忽略链接对象,但不忽略链接对象 ID

Java Hotspot 命令行参数增加Java方法的最大大小

java - repaint() 不会在调用时重新绘制?

java - Spark 集群在更大的输入上失败,适用于小的

java - 在 Swing 中拖放以订购项目

java - 我可以在 CardLayout 中设置单个面板的大小吗?

java - 图像未显示?

java - JPanel 中的重绘查询

java - Java中的Repaint和paintComponent()