2016-02-29 96 views
0

我的循環出現了一個小問題,我無法弄清楚它爲什麼不起作用。我試圖讓TextField從一條消息更改爲另一條消息,具體取決於他們是按了奇數按鈕還是偶數按鈕。在TextField中顯示文本時出現循環故障

看來我的display = count % 2有點搞砸了,根本就沒有正確地做數學。在控制檯中,我放置了一個打印語句來測試它,它似乎只是打印出"1",所以它從來不會是奇怪的,因此我猜它不會打印出其他語句?

我相信這很簡單,但我一直無法弄清楚。感謝您的任何幫助!

我將附上Java源代碼的屏幕截圖。


Java源代碼:

private void btnClickMeMouseReleased(java.awt.event.MouseEvent evt) {           
    // TODO add your handling code here: 

    setDisplay(); 
}           

private void setDisplay() { 
    int display; 

    for(int count = 1; count < 10; count++){ 
     display = count%2; 

     if(display == 0) { 
     lblHello.setText(hello); 
     } else { 
      lblHello.setText(null); 
      System.out.println(display); 
     } 
    } 
} 
+0

它並不總是奇怪。你只需要它打印出1時的顯示,而不是0時。你的代碼工作得很好。也許可以在if子句的初始部分中添加相同的打印語句,如果還需要該輸出。 – basic

回答

3

您的代碼做數學就好了,這是你的邏輯搞砸了。代碼只打印「1」,因爲您只從if/else塊的else部分打印。如果您還在該塊的if部分中添加了println,則會看到大量的「0」打印出來。

你最大的錯誤是使用for循環 - 不要這樣做,因爲每次調用setDisplay()時,循環都會運行並始終以9結束,並且只會顯示" "。相反,要擺脫for循環並在actionPerformed內部增加一個計數器變量,並根據其值執行操作。

將來,不要將代碼作爲圖像發佈。將其以文本格式發佈爲代碼,以便我們可以根據需要進行復制和粘貼。

其他問題 - 不要將MouseListener添加到JButton。使用ActionListener代替原因有很多,特別是它的行爲與大多數其他按鈕相同,並且會在空格鍵上激活,如果按鈕被禁用,將會停用。

+0

我的aplogize我會修復我的屏幕截圖爲純文本,並感謝您的幫助! 10分鐘後我會接受! – Ashton

+0

我將如何重寫我的代碼?我在考慮循環時遇到問題。謝謝! – Ashton

+1

@Ashton:再次**你不使用循環**。你在考慮線性控制檯編程技術,這不是你在這裏創建的。你正在創建一個事件驅動的程序,所以你只需在你的按鈕的ActionListener中增加你的計數器變量,而不是循環。 –

0

放一個System.out.println(顯示);在if語句中。你只在其他地方調試。這很可能工作。