我的gui上有一个Start和Pause按钮。当我单击start时,它会从另一个类执行run()方法,我希望能够暂停执行,但是在程序运行时我无法单击暂停按钮,暂停按钮只能在运行时单击(完成。
如何在执行run()时点击暂停按钮?
答案 0 :(得分:1)
当我点击start时,它会从另一个类和我执行方法run() 希望能够暂停执行,但我无法点击暂停 程序运行时按钮只有暂停按钮 当run()完成时可单击。
这种情况正在发生,因为您在与gui相同的线程中执行run方法。 The Event Dispatch Thread。您可能对SwingWorker
感兴趣的是它为后台线程中的长时间运行任务而设计的。如果您想中断,可以使用SwingWorker#cancel()
。阅读更多Worker Threads and SwingWorker和Cancelling background threads