我正在处理线程,并且我希望在我打开Cal_JInternalFrame
时运行此代码。它运行了第一次,但每当我重新打开框架,它不会再运行。我在整个申请的退出时间使用t1.interrupted()
。代码是:Java中的线程命令选项是什么?
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
while (!t1.isInterrupted()) {
// ......... Oil Calculation Thread ...
int price = (Integer.parseInt(jLabel22.getText()));
int qty = (Integer)jSpinner8.getValue();
int totalOil =qty * price;
jTextField19.setText(String.valueOf(totalOil));
}
}
});
t1.start()
是在主框架的构造函数中。
线程原始的方法destroy()
,stop()
,resume()
和suspend()
已弃用,所以我不能使用这些。我现在可以如何stop
和resume
一个线程?如果我的线程t1
被中断,如何重新启动或重新运行?
也许未来就是你要找的。 –
你的代码在你设想的不同级别上是*错误*:Swing是**不是线程安全的**并且你不能从任何线程查询或修改除UI线程以外的任何Swing组件。 http://stackoverflow.com/questions/13873198/where-can-i-find-a-description-of-swing-as-a-single-threaded-model-in-the-javado你可以使用'EventQueue.invokeLater '和'EventQueue.invokeAndWait'来安排代码在UI线程上运行,如果你当前在不同的线程上。不这样做会以非常意想不到的方式破坏你的程序。 –