我有一个带有IOBound任务的SwingWorker线程,它在运行时完全锁定了界面.更换计数器循环的正常工作负载具有相同的结果.SwingWorker看起来基本上是这样的:
public class BackupWorker extends SwingWorker<String, String> {
private static String uname = null;
private static String pass = null;
private static String filename = null;
static String status = null;
BackupWorker (String uname, String pass, String filename) {
this.uname = uname;
this.pass = pass;
this.filename = filename;
}
@Override
protected String doInBackground() throws Exception {
BackupObject bak = newBackupObject(uname,pass,filename);
return "Done!";
}
Run Code Online (Sandbox Code Playgroud)
}
启动它的代码存在于扩展JFrame的类中:
public void actionPerformed(ActionEvent event) {
String cmd = event.getActionCommand();
if (BACKUP.equals(cmd)) {
SwingUtilities.invokeLater(new Runnable() { …Run Code Online (Sandbox Code Playgroud)