1

每次用户按下按钮时,计数器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

4 回答 4

1

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

于 2010-11-28T12:56:13.407 回答
1

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

于 2010-11-28T12:42:45.793 回答
1

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

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

您可能需要实现该incrementAmountGuessed方法(这可能是您问题的根源)。

于 2010-11-28T13:55:33.680 回答
1

可能是线程问题。请看这里

于 2010-11-28T12:43:56.090 回答