首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swing:在长时间运行方法调用之后,更改为JFrame中的另一个面板

Swing:在长时间运行方法调用之后,更改为JFrame中的另一个面板
EN

Stack Overflow用户
提问于 2015-02-24 03:54:15
回答 1查看 222关注 0票数 1

我的Java应用程序工作流程:

  1. 获取输入关键字,然后将其转换为HTTP查询
  2. 新的Jframe,女巫显示了一些词,如“关键字处理.请等待。”
  3. 在1分钟内写完这篇文章,可能要花很多分钟。
  4. 在POST返回结果后,提取我需要的数据。
  5. 显示Jframe中的数据,它替换了2中的内容

我首先尝试在Jframe的构造函数中对流逻辑进行编码。但是该帧将挂在HTTP平台上,而不是在2中显示单词。在POST完成后,它将直接显示5中的数据。

由于跳到第二阶段,用户可能会认为进程阻塞意味着有什么不对,它不做搜索工作。

现在,我在JOptionPane.showMessageDialog中添加了一个stage2。它停止进程,因为需要鼠标单击对话框中的"OK“按钮。在这一刻,框架中的面板显示“关键字处理.请等待”。

我想知道为什么MessageDialog的停止点可以绘制旧面板,这意味着2中的单词,例如repaint()或repaint()不绘制旧面板。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-24 04:01:13

不要阻塞EDT (事件调度线程)。当这种情况发生时,GUI将“冻结”。有关详细信息和修复(a 在Swing中并发 ),请参见SwingWorker

顺便说一句--使用CardLayout,如这个答案中所示,用于更改面板。

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

https://stackoverflow.com/questions/28687878

复制
相关文章

相似问题

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