0

我对 Swing 很陌生。

我有

itemActionButton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent arg) {
        itemAction();
    }
});

但是当单击按钮时,我希望父表单的线程等到该操作完成后再刷新,而不是在另一个线程上运行此操作,从而允许额外的点击等。

我怎样才能做到这一点?

4

1 回答 1

1

ActionListener 中的代码在 EDT 上执行,从而防止 GUI 重新绘制和响应其他事件。

如果您有一个长时间运行的任务并且您不想阻塞 EDT,那么您需要使用另一个线程。

阅读有关并发的 Swing 教程部分,了解更多信息和使用 SwingWorker 的解决方案。

于 2013-04-06T02:05:49.753 回答