首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向图形输出添加暂停

向图形输出添加暂停
EN

Stack Overflow用户
提问于 2015-05-06 15:38:23
回答 1查看 56关注 0票数 1

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

我想要在图形中暂停,所以当项目在搜索过程中改变颜色时,这是显而易见的。但是,暂停会导致图形停止。有人知道为什么吗?老实说,我以前从未使用过Thread,也不知道它对运行进程有什么作用。

谢谢你的建议。

所讨论的代码片段:

代码语言:javascript
运行
复制
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.");
    }
}
EN

Stack Overflow用户

回答已采纳

发布于 2015-05-06 15:54:08

但是,暂停会导致图形停止。

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

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

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

有关Swing工作人员的更多信息和示例,请参阅有关并发性的Swing教程中的部分。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30081409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档