如何让 SwingWorker 启动不止一次..?

Cha*_*laj 1 java swing swingworker

如图所示,我创建了一个名为“过滤器”的按钮,用于根据特定数据集的当前状态过滤掉它们。我使用 SwingWorker 从数据库中检索数据。我现在拥有的代码工作正常。单击按钮后,它会显示相关数据。但是当我以不同的状态再次单击它时,它没有显示所需的数据。我读到 dobackground 方法只会执行一次。有没有办法再把它关掉..??

在此处输入图片说明

Hov*_*els 5

您无法重新启动 SwingWorker,更重要的是,您不想重新启动。根据SwingWorker API

SwingWorker 仅设计为执行一次。多次执行 SwingWorker 不会导致调用 doInBackground 方法两次。

您的解决方案是在按钮的 ActionListener 中创建一个新的 SwingWorker 实例并执行它;这样做,你可能会没事的。