我知道SO是用来回答具体问题的,但我需要建议一下 在爪哇,什么是正确的做法 工作周期工人线。
我的应用程序根据在 jTextPane 中显示的计算过程生成了大型 HTML 文本。 为了避免屏蔽用于在 Swing Worker Tread 中进行计算的 GUI I 。
我的问题是, 开始计算需要大量信息, 包括不同的菜单复选框和 GUI 列表框, 在计算结束时, 我需要在 EDT 中启动函数 。
我有两个可能性:
第一个是将大量信息发送给我的斯温工人, 还需要通过主Frame 进入“完成”中的具体功能 。
public class MyWorker extends SwingWorker<Void, Void> {
private MyMainFrame frame;
public MyWorker(plenty of params) {
}
@Override
public Void doInBackground() {
//my background process
}
@Override
public void done() {
frame.myfunc1;
frame.myfunc2;
frame.myfunc3;
}
}
第二是使用内部类
这在爪哇是正确的。如果两者都“正确 ”, 那么一个的利弊对另一个的利弊。