我的平衡变量不会在我的JLabel中更新/显示

时间:2018-01-02 02:03:47

标签: java netbeans

我使用netbeans创建一个简单的点击游戏。你点击按钮赚钱。 在屏幕的顶部,我有一个jlable设置来显示播放器的平衡

balDisplay = new javax.swing.JLabel();
balDisplay.setText("Balance: ¢"+bal);

虽然当我运行它时显示的全部是“余额:¢0” 我已经设置了它,因此按钮点击事件不仅会为玩家余额增加金额,而且会在控制台中打印余额,每次点击都可以获得指定的金额,就像我设置的一样。只是标签不会显示它。 这就是我正在为鼠标点击事件做的事情

private void clickMouseClicked(java.awt.event.MouseEvent evt) {                                   
    bal = bal+100;
    System.out.println(bal);
}  

1 个答案:

答案 0 :(得分:1)

setText()立即进行评估,不会绑定到bal

的值

a = 1;
b = a;
a = 2;

由于b未更新为2的原因相同,标签的文字将不会重新计算。

解决此问题的最快方法是在balDisplay.setText("Balance: ¢"+bal);更改bal时添加bal。一个更强大的解决方案就是在更新{{1}}并使标签订阅事件时触发。