如何在Java中使用SwingWorker?与我先前的问题有关:调用Java中另一个类的重新绘制吗?我是Java新手,我看过一些关于SwingWorker的教程。然而,我不知道如何用我在前面的问题中给出的示例代码来实现它。有人能解释一下如何使用SwingWorker来处理我的代码片段和/或向我介绍一个不错的教程吗?我看过了,但我还不太明白。
3 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
在事件调度线程(EDT)上运行长期运行的任务会导致GUI锁定。
因此,所做的事情之一是使用SwingUailties.InvokeLater和InvokeAndWait来保持GUI的响应性。
SwingUtilities.invokeLater(new Runnable() { @Override public void run() { try { Thread.sleep(100000); } catch (InterruptedException e) { e.printStackTrace(); } } });
大话西游666
TA贡献1817条经验 获得超14个赞
你是正确的。通常,将在事件分派线程之外调用InvokeLater,以便在事件分派线程上运行某些内容,例如,长时间运行的任务可能会调用InvokeLater来更改显示。这是因为对Swing对象的操作必须发生在事件线程中,以维护线程安全。
添加回答
举报
0/150
提交
取消