gpt4 book ai didi

java - 向图形输出添加暂停

转载 作者:行者123 更新时间:2023-11-30 03:26:31 25 4
gpt4 key购买 nike

我创建了一个程序来处理有向图。我还使用栅格来显示图表。 (我仍在努力清理它,尽管它应该足以显示计算结果。) enter image description here

我想在绘图中暂停一下,这样当项目在搜索过程中改变颜色时就很明显了。但是,暂停会导致绘图停止。有谁知道为什么会这样吗?老实说,我以前从未使用过Thread,也不知道它对运行进程有什么作用。 enter image description here感谢您的任何想法。

有问题的代码片段:

public void showEdge (Raster canvas, Vertex target, Color c) {
[...]
canvas.setLine (x1,y2,x2,y2,c);
try {
Thread.sleep (1000); }
catch (InterruptedException e) {
System.out.println ("Problem with the pause.");
}
}

最佳答案

However, the pause causes the graphing to stop.

听起来您的代码正在事件调度线程 (EDT) 上执行。 EDT 是处理 GUI 上的事件处理的线程。 Thread.sleep() 将使 EDT hibernate ,这意味着 GUI 在处理完成之前无法重新绘制自身。

不要在 EDT 上使用 Thread.sleep()。

相反,您需要创建一个单独的线程。您可能应该使用 Swing Worker。 Swing Worker 将为您创建单独的线程。您可以在此线程中 hibernate 并发布更新 GUI 的中间结果。

阅读 Swing 教程中关于 Concurrency 的部分了解 Swing Worker 的更多信息和示例。

关于java - 向图形输出添加暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30081409/

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