gpt4 book ai didi

Java 等待 repaint() 方法完成 - 不知道如何实现

转载 作者:行者123 更新时间:2023-11-29 05:31:55 27 4
gpt4 key购买 nike

我搜索了很多问题说 wait until repaint has finished 但我从来没有找到我可以真正实现或理解的答案!
我不希望代码在屏幕重绘后继续执行!
我有一个简单的功能:

public static void clearScreen()
{
panel.repaint();
}

现在我可以告诉你,这是可行的!
唯一的问题是它不会等待重新绘制,例如:

public static void blah()
{
drawSomething();
clearScreen();
drawSomething();
}

很有可能两幅图都会从屏幕上消失。你可能会猜到我不想要这个!
我只想提一下,所有单独的功能都有效!

最佳答案

请求对组件进行重绘会将重绘事件添加到 Event Dispatch Thread这是一个单独的后台线程,实际上会调用 paint()稍后。

取决于你在 drawSomething() 中做什么可能发生在事件分派(dispatch)线程重新绘制之前或之后。最好的办法是通过在对 SwingUtilities.invokeLater 的调用中“绘制一些东西”,在事件分派(dispatch)线程上完成所有工作。 .这将在事件分派(dispatch)线程上运行您的代码。事件调度线程上的所有进程都按照它们提交的顺序执行(通常,一些重绘请求被组合等),因此调用的逻辑顺序得以保留。

了解有关事件调度​​线程的更多信息 in the Oracle Java Tutorial

关于Java 等待 repaint() 方法完成 - 不知道如何实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20790019/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com