私は次のコードを持っています...
runNow.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
final Search s = (Search) node.getUserObject();
// Swing worker
SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() {
@Override
public Void doInBackground() {
s.run();
return null;
}
@Override
public void done() {
window.updateResultsPanel(s.getResults(), s.getName());
}
};
worker.run();
}
});
これはポップアップメニューアクションであり、新しいSwingWorkerを作成し、GUIを解放し、いくつかの作業を行ってから、ウィンドウの結果を更新する必要があります。ただし、現在、メニュー項目をクリックすると、作業が完了するまでGUIがロックされ、困惑します。SwingWorkerを使用することの全体的なポイントは、それが起こらないようにすることです。
私が間違っていることについてのアイデアは大歓迎です。
-コーディ