我想从主GUI执行ExampleSwingWorker1。主GUI类编译并执行一些jFrame和DB操作,并向用户显示主应用程序屏幕。我还有另一个班级来存放我所有的Swingworkers。
public class WorkerClass {
public class ExampleSwingWorker1 extends SwingWorker<Void, Void> {
protected Void doInBackground() throws Exception {
process1();
process2();
process3();
process4();
process5();
process6();
return null;
}
public void done() {
Toolkit.getDefaultToolkit().beep();
}
}
}
MainGui类中的按钮操作;
private void buttonRefreshActionPerformed(java.awt.event.ActionEvent evt) {
WorkerClass.ExampleSwingWorker1 trying = new WorkerClass.ExampleSwingWorker1();
}
我尝试使用上面的方法来实例化ExampleSwingWorker1,但这是不可能的。 But this Oracle Link为触及内部类提供了这种方法。
答案 0 :(得分:1)
您需要WorkerClass
第一个
Workerclass worker = new WorkerClass();
WorkerClass.ExampleSwingWorker1 trying = worker.new ExampleSwingWorker1();
trying.execute();
了解详情:Inner classes | Nested classes
注意:如果它不使用WorkerClass实例方法,则认为它使它成为static
,那么您不需要WorkerClass实例来创建ExampleSwingWorker1
实例。
注意2:建议您添加@Override
注释。原因是什么?阅读here