我正在處理線程,並且我希望在我打開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線程上運行,如果你當前在不同的線程上。不這樣做會以非常意想不到的方式破壞你的程序。 –