您需要做的就是将所有Swing调用包装在Runnable中,然后通过将其排队在EDT上
SwingUtilities.invokeLater(myRunnable);。而已。不需要SwingWorker。
例如,
public class LineProcessor implements Runnable { private int currentLineNo = 0; Runnable LineProcessor = new LineProcessor(); // won't this cause infinite recursion? public LineProcessor() { // ... } @Override public void run() { // call getText(); // call playAudio(); currentLineNo++; SwingUtilities.invokeLater(new Runnable() { public void run() {// *** Swing pre can go here *** } }); }}


