假设我有一个监听器连接到一个按钮。当我按下这个按钮时,actionPerformed被调用,并且我将标签设置为可见。然后运行calculate()
方法(其中有一些非常长的计算,它需要时间)。然后我想用show()
方法打印结果。在执行操作时执行多个任务代码java
的是,我知道一个事实,即标签将里面actionPerformed
被设置为可见后,所有的代码就会被执行。
所以我的问题是:我应该如何设置calculate
方法在后台运行?主题? SwingTimer? SwingWorker的?我还没有找到理想的方式。
class ButtonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
calculateLbl.setVisible(true);
calculate();
show();
}
}
感谢您的帮助,示例代码帮助我了解如何开始,现在我可以更多地编辑它并继续。 – breathtaker
你可以告诉我一个方法,我可以调用'show()'在calculate()运行时在框架中打印结果吗?例如,它可以在“calculate”循环中每100次运行一次。 – breathtaker
@breathtaker:看看在你的SwingWorker中使用发布/过程,包括看[SwingWorker教程](https://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html)作为搜索这个网站。例如,看看[我的相关答案](http://stackoverflow.com/search?tab=votes&q=user%3a522444%20swingworker%20publish%20process),可以很容易找到。 –