Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 等待Swing';s元素重绘完成_Java_Swing_Repaint - Fatal编程技术网

Java 等待Swing';s元素重绘完成

Java 等待Swing';s元素重绘完成,java,swing,repaint,Java,Swing,Repaint,我希望能够等待Swing的重新绘制完成 例如: frame.repaint(); wait_for_repaint_to_finish(); //work 我有这样的想法: SwingUtilities.invokeAndWait(new Runnable() { public void run() { try { frame.repaint(); } catch (Exception e) { e.pr

我希望能够等待Swing的重新绘制完成

例如:

frame.repaint();
wait_for_repaint_to_finish();
//work
我有这样的想法:

SwingUtilities.invokeAndWait(new Runnable() {

    public void run() {
        try {
            frame.repaint();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
});

这是正确的方法吗?

您可以覆盖
paintComponent()


问题是你为什么需要这样的东西?为什么你要重新粉刷整个框架,然后等待它完成呢。如果我们知道你想做什么,我们可能会给出更好的建议

repaint()只是安排要完成的绘制。RepaitManager可能会合并多个绘制请求,并一次执行这些请求,以提高绘制效率

话虽如此,如果你真的需要强制重画,你可以使用

JComponent.paintImmediately(...);

但这只能作为最后的手段,不能用来解决设计问题。

这可能有助于了解您试图实现的目标;如果不正确,请还原。
JComponent.paintImmediately(...);