2010-11-28 79 views
1

每次用戶按下一個按鈕,一個計數器amountWrongGuessed被加1更新的JLabel與價值

(與System.prinln測試正常工作),但究竟如何我得到這個在我的標籤,每次我按下更新按鈕?

我已經做了一個屬性,返回這個值。

public int getAmountGuessed(){ 
    return amountGuessed; 
} 

下一個我試圖讓標籤的值,但該值始終保持爲0

lblAmountGuessDisplay = new JLabel(String.valueOf(hg.getAmountGuessed())); 


private void UpdateComponents() 
{ 
     lblAmountGuessDisplay.setText(String.valueOf(hg.getAmountGuessed())); 
}/*updateComponents*/ 
+0

你可以發佈更多的代碼嗎?只要JLabel只創建一次,而UpdateComponents()在按鈕單擊事件後被調用,那麼到目前爲止,沒有任何內容與您發佈的內容相關。 – 2010-11-28 12:49:57

回答

1

example顯示每個按鈕被點擊的時間來更新標籤的一種方式。

1

這可能是一個線程問題。請看看here

1

我同意弗雷德裏克 - 你沒有發佈足夠的信息來回答你的問題,它可能是一個參考問題 - 你正在改變的JLabel不是在程序中顯示的那個。如果你發佈更多的代碼,我們將有更好的機會給你一個體面的答案。此外,這並不像一個線程問題。

1

您需要添加一個ActionListener到您的按鈕。當通知ActionListener按鈕被按下時,您可以遞增計數器並更新JLabel。 EDT中將觸發actionPerformed方法,所以您應該確定線程。

lblAmountGuessDisplay.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent ae) { 
      hg.incrementAmountGuessed(); 
      lblAmountGuessDisplay.setText(String.valueOf(hg.getAmountGuessed())); 
     } 
} 

你可能會需要實現incrementAmountGuessed方法(可能是你的問題擺在首位根)。