task.execute()将启动一个背景(从中
doInBackground调用该方法),程序将继续执行。
task.execute()不是阻塞方法,这是使用它的原因,因此您不要阻塞事件调度线程
您可以
SwingWorker使用
PropertyChangeListener
final ClassAnalyzer c = new ClassAnalyzer();Swinger task = new Swinger(c);task.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals("state") && evt.getNewValue().equals(SwingWorker.Statevalue.DONE)) { int methods = c.getNumberOfMethods(); if(methods == 0){ JOptionPane.showMessageDialogo(null, "methods not found"); } } }});task.execute();


