|
|
1
1
这是未能遵守Swing EDT规则。 SwingWorker的目的是在发生会阻塞UI的UI事件时执行大量非UI任务,然后在结束时更新UI。 因此,您可以在doinbackground()内实现举重;完成后,Swing将在EDT上调用Done(),并且可以使用get()检索结果。 这里的问题是,您正在使用新的线程swingworker创建的GUI工作。这可能导致死锁和并发问题。 这包括创建所说的GUI对象,这些对象应该是可运行的,即使您已经在EDT上了。 行动,如:
应该用invokeAndWait封装在可运行文件中。实际上修改图形用户界面本身的东西,尤其需要在自己的可运行文件中, 即使 如果您已经在Swing事件分派线程中响应按钮按下或更改,那么您将面临处理已经处理的对象的风险。 例如,Swing正在工作并锁定a以允许您工作,让您在b上工作尝试锁定并在a上工作 |
|
|
Jörg · 如何更改多行JButton中的行距 1 年前 |
|
|
Clive Galway · 将摆动元件包装在面板顶部 1 年前 |
|
|
AlexHomeBrew · 如何将图像放在左上角的滚动窗格中 2 年前 |
|
|
Vithor Roder · Java CellEditor 2 年前 |
|
|
Dromlius · JPanel透支重叠的JComcoBox 2 年前 |