每次用户按下按钮时,计数器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*/
答案 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()));
}
}
方法(这可能是您问题的根源)。