Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更新JLabel';事件期间的标签文本-Swing_Java_Swing_Jlabel - Fatal编程技术网

Java 更新JLabel';事件期间的标签文本-Swing

Java 更新JLabel';事件期间的标签文本-Swing,java,swing,jlabel,Java,Swing,Jlabel,基本上,我希望在单击按钮期间更改JLabel的标签文本 “生成PDF记录簿” 从上一个例子可以看出: label.setText("new value"); 当我这样做的时候,标签值一点也没有改变,请给我一些指示,谢谢 初始化() 在按钮“生成PDF记录簿”上单击 JButton btnGeneratePdfHeader = new JButton("Generate PDF Record Book"); btnGeneratePdfHeader.setMnemoni

基本上,我希望在单击按钮期间更改JLabel的标签文本 “生成PDF记录簿”

从上一个例子可以看出:

label.setText("new value");
当我这样做的时候,标签值一点也没有改变,请给我一些指示,谢谢

初始化()

在按钮“生成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");
        }
    });

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

而不是更改UI上标签的文本。您需要对已经添加到UI的标签的引用调用
setText(“新值”)
。例如,该标签必须是UI类中的一个字段,例如
final JLabel fileSizeLabel
,您可以通过调用

fileSizeLabel.setText("new value");

在按钮操作侦听器内。

请再次阅读我的答案。你根本没有按我的建议做。您所做的唯一一件事是将不必要的JLabel设置为
null
,这会在调用方法时产生
NullPointerException
。感谢@Marv,基于您的评论,拥有它,非常感谢您指出错误,并让我学习和解决问题。谢谢
final JLabel lblNewLabel = new JLabel("513 k bytes");
lblNewLabel.setText("new value");
fileSizeLabel.setText("new value");