【问题标题】:How to update JLabels with numbers如何用数字更新 JLabels
【发布时间】:2015-02-10 01:21:39
【问题描述】:

好的,所以我有两个文本字段,您可以在其中输入两个数字,然后在这两个文本字段下方是一个名为 result 的标签,一旦将它们加在一起就会显示金额。窗口底部是一个添加按钮。我在更新结果标签时遇到问题,下面只是我显示的添加按钮的动作监听器。从我的代码中,一切都显示得很好,我只需要知道如何更新我的结果标签以显示两个数字的总和。顺便说一句,这都是在 java 中。

addButton.addActionListener( new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            double sum = 0;
            double newNum1 = 0;
            double newNum2 = 0;


            String num1 = leftOperand.getText();
            String num2 = rightOperand.getText();



            if(!(num1.trim().equals("")) || !(num2.trim().equals("")))
            {
                newNum1 = Double.parseDouble(num1);
                newNum2 = Double.parseDouble(num2);
            }


            sum = newNum1 + newNum2;
            JLabel resultLabel = new JLabel("Result =");
            resultLabel.setText("Result = " + String.valueOf(sum));
        }

    });

这是我用来创建结果标签的代码。以防万一你需要看到它。

JPanel resultPanel = new JPanel();
JLabel resultLabel = new JLabel("Result =");

resultLabel.setName("resultLabel");
resultPanel.add(resultLabel);

frame.add(resultPanel, BorderLayout.LINE_START);

注意:这些都是在同一个方法中。

【问题讨论】:

  • 提示:JLabel resultLabel = new JLabel("Result ="); 是做什么的?

标签: java swing jpanel jlabel


【解决方案1】:

首先,将resultLabel 设为实例变量...

public class MyAwesomeClass extends ... {
    private JLabel resultLabel;

在构建 UI 时,请确保使用它而不是创建局部变量

//JLabel resultLabel = new JLabel("Result =");
resultLabel = new JLabel("Result =");

计算结果时,使用实例变量

//JLabel resultLabel = new JLabel("Result =");
resultLabel.setText("Result = " + String.valueOf(sum));

回归基础,看看Classes and Objects和Declaring Member Variables

【讨论】:

    猜你喜欢
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 2015-06-18
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多