【问题标题】:Updating JLabel with value用值更新 JLabel
【发布时间】:2010-11-28 12:33:44
【问题描述】:

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

【问题讨论】:

  • 您能发布更多代码吗?只要 JLabel 仅创建一次并且在按钮单击事件后调用 UpdateComponents(),您所发布的内容就没有任何内容。

标签: java swing jlabel


【解决方案1】:

这个example 展示了一种在每次单击按钮时更新标签的方法。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2020-06-26
          • 1970-01-01
          • 1970-01-01
          • 2012-06-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多