【问题标题】:Update the JLabel's label text during the event - Swing在活动期间更新 JLabel 的标签文本 - Swing
【发布时间】:2014-12-16 16:47:45
【问题描述】:

基本上我想在单击按钮期间更改 JLabel 的标签文本 '生成 PDF 记录簿'

从前面的例子说:

label.setText("new value");

当我这样做时,标签值根本没有改变,请给我一些指导,谢谢

初始化();

JLabel lblNewLabel = new JLabel("513 k bytes");
    lblNewLabel.setBounds(407, 713, 151, 14);
    frmViperManufacturingRecord.getContentPane().add(lblNewLabel);

点击按钮生成PDF记录簿点击

        JButton btnGeneratePdfHeader = new JButton("Generate PDF Record Book");
    btnGeneratePdfHeader.setMnemonic('G');
    btnGeneratePdfHeader.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {

            final JLabel lblNewLabel = new JLabel("513 k bytes");

            //java.io.File file = new java.io.File(strdfile);
            //lblNewLabel.setSize(file.length());
            //System.out.println(file.length());

            String fileSize = file.length() + " k bytes";
            System.out.println("I am here");

            lblNewLabel.setText("new value");
        }
    });

【问题讨论】:

    标签: java swing jlabel


    【解决方案1】:

    按下按钮时您正在创建一个新的JLabel,然后将该标签的文本设置为“新值”

    final JLabel lblNewLabel = new JLabel("513 k bytes");
    lblNewLabel.setText("new value");
    

    而不是更改 UI 上标签的文本。您需要调用 setText("new value") 来引用您已经添加到 UI 中的标签。例如,该标签需要是您的 UI 类中的一个字段,例如 final JLabel fileSizeLabel,您可以通过调用来设置该标签文本

    fileSizeLabel.setText("new value");
    

    在按钮动作监听器中。

    【讨论】:

    • 请再次阅读我的回答。你根本没有按照我的建议去做。您唯一要做的就是将不必要的 JLabel 设置为 null,这会在对其调用方法时生成 NullPointerException
    • 感谢@Marv,根据您的cmets,有achieved 它,非常感谢您指出错误并让我学习和解决问题。谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-02-13
    • 2017-07-20
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    相关资源
    最近更新 更多