Java 如何执行内部Swingworker类?
我想从主GUI执行ExampleSwingWorker1。主GUI类编译并执行一些jFrame和DB操作,并向用户显示主应用程序屏幕。我还有另外一门课给我所有的荡秋千的人Java 如何执行内部Swingworker类?,java,swing,inner-classes,Java,Swing,Inner Classes,我想从主GUI执行ExampleSwingWorker1。主GUI类编译并执行一些jFrame和DB操作,并向用户显示主应用程序屏幕。我还有另外一门课给我所有的荡秋千的人 public class WorkerClass { public class ExampleSwingWorker1 extends SwingWorker<Void, Void> { protected Void doInBackground() throws Exception
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();
}
}
}
我尝试使用上述方法实例化ExampleSwingWorker1,但这是不可能的。为reach内部类提供此方法。首先需要
WorkerClass的实例
Workerclass worker = new WorkerClass();
WorkerClass.ExampleSwingWorker1 trying = worker.new ExampleSwingWorker1();
trying.execute();
阅读更多:|
注意:如果它不使用WorkerClass实例方法,那么您不需要WorkerClass实例来创建示例SwingWorker1
实例
注2:建议您添加@Override
注释。原因是什么?阅读我不知道它是否有效。当我试着打字时。列出swingworker的可用操作。但实例化行仍然返回错误。怎么可能?因为你需要一个WorkerClass
first的实例谢谢你的评论。下面的代码为我工作。但我觉得Swingworker有一些逻辑问题。因为我引用了MainGUI类,所以我想你的设计很糟糕。。MainGUI使用WorkerClass,WorkerClass使用MainGUI,它们太耦合了。我必须找到一种使用MainGUI方法的方法,并从该软件更新MainGUI组件,而不使用实例。@BlackWhite 1)您可以通过参数new ExampleSwingWorker(this)
2)传递引用,您可以创建自己的WorkerListener
,然后在尝试时。addPropertyChangeListener(new MyListener)
如果MyListener可以/应该是MainGUI的内部类,则可以在那里进行更新:d3)另一种可能性是使用一种在WorkerClass和MainGUI之间进行通信的中介
Workerclass worker = new WorkerClass();
WorkerClass.ExampleSwingWorker1 trying = worker.new ExampleSwingWorker1();
trying.execute();