使用值更新JLabel

时间:2010-11-28 12:33:44

标签: java swing jlabel

每次用户按下按钮时,计数器amountWrongGuessed都会增加1.(使用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*/

4 个答案:

答案 0 :(得分:1)

example显示了每次点击按钮时更新标签的一种方法。

答案 1 :(得分:1)

这可能是一个线程问题。请看一下here

答案 2 :(得分:1)

我同意Fredrick的意见 - 你没有发布足够的信息让你的问题得到回答,这可能是一个参考问题 - 你正在改变的JLabel不是程序中显示的那个。如果你发布更多代码,我们将有更好的机会给你一个体面的答案。此外,这并不像线程问题。

答案 3 :(得分:1)

您需要在按钮中添加ActionListener。当通知ActionListener按下按钮时,您可以递增计数器并更新JLabel。 {(1}}方法将在EDT中触发,因此您应该可以使用线程。

actionPerformed

您可能需要实施lblAmountGuessDisplay.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ae) { hg.incrementAmountGuessed(); lblAmountGuessDisplay.setText(String.valueOf(hg.getAmountGuessed())); } } 方法(这可能是您问题的根源)。