2014-03-01 28 views
0

我有一個不定式循環程序進入循環時,單擊按鈕,此按鈕使CONFLAG = true,我有另一個按鈕,這使得CONFLAG = false我想要進入循環時,按鈕1點擊退出時BUTTON2點擊時,我也有一個問題,而在這個循環程序必須改變jLabel3的文本,但它stucks,只是不重生 謝謝Java無法更改標籤的文本和檢查無限循環中的變量的狀態

while(true) 
    { 
     Regenerate((GENNUM-200)); 
     Arrays.sort(gend,descTime); 
     jLabel3.setText(Integer.toString(gend[1].time)); 
     if(CONFLAG==false) 
      break; 
    } 
+0

建議:使用'!CONFLAG'而不是'CONFLAG == false'。此外,大寫字用於常量。你可以命名該變量'conflag'。 – Christian

+0

@Christian我知道它來自C++,但不知道Java,謝謝 – esezen

+0

你是否開始後臺線程來運行這個無限循環? –

回答

0

我有一個當點擊一個按鈕時,不定式循環程序進入循環

然後,您的代碼正在執行事件派發線程,並且阻止GUI響應事件或重繪自身,直到代碼完成執行。

您需要創建一個單獨的線程來執行此循環中的代碼。最簡單的方法是使用SwingWorker,然後您可以將publish中間結果顯示在您的標籤上。有關更多信息和示例,請參閱Swing教程Concurrency中的部分。