1

看来我错过了 Java 和 Swing 中的某个点。问题如下:

  • 我有一个带有开始/停止按钮的摆动 GUI(还有更多)
  • 它启动函数(在这种情况下被设置为线程),线程启动,它工作,Swing GUI 完全可操作,并执行它所要做的所有其他事情,例如修改工作线程的参数。
  • 当然,发送中断请求线程在用户请求时停止是在和函数中。到现在为止还挺好。

但我没有发现 Swing GUI 注意到线程自行停止的方法:如果我忽略它,它会使用户感到困惑。我当然放了一个循环,Swing GUI 会定期询问是否 Thread.isAlive(并且会睡一段时间再询问),但是这个循环完全阻塞了 Swing GUI。理想情况下,我想收到线程已停止的通知或事件。就像所有其他事件一样,Swing 进程:-) 。

设置它的正确方法是什么?

4

2 回答 2

4

看看SwingWorker。它旨在作为 Swing 事件(如按钮按下)的结果在后台执行任务。当任务完成时,它有钩子来监听。

于 2013-02-15T21:28:55.727 回答
0

使用布尔标志“完成”私有字段。初始化完成=假;当你的线程 run() 方法完成时,在线程 run() 方法中设置 done=true。监视“完成”标志的值将告诉您线程何时完成。

于 2013-02-15T21:57:22.827 回答