【发布时间】:2015-05-17 03:33:21
【问题描述】:
简而言之,我创建了一个Something 类,它有一个带有JFrame 的函数,上面有一个标签和一个按钮。在按钮上我有一个 addActionListener(new changeLabel())。 我在 src 包中为侦听器做了类 changeLabel,但是当我启动应用程序并单击按钮时,在 changeLabel 上抛出 NullPointerException
nameLabel.setText("名称已更改");
线。我想提一下,如果我在Something 类中创建这个监听器类,那么它工作得很好。 我不知道为什么会抛出空异常,因为标签首先被初始化,然后按钮只想更改文本。 我尝试创建一个getFunction,调用该标签,我尝试使用对象Something,使用对象changeLabel 等......但不起作用。 这是一些代码
package trying;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.event.*;
public class Something {
JFrame frame;
JLabel changeName;
JButton button;
public void gui(){
frame = new JFrame();
frame.setSize(200, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//is just an example
changeName = new JLabel("Stefan");
//is just an example
button = new JButton("Change");
button.addActionListener(new changeLabel());
frame.getContentPane().add(changeName, BorderLayout.NORTH);
frame.getContentPane().add(button, BorderLayout.SOUTH);
frame.setVisible(true);
}
public static void main(String args[]){
new Something().gui();
}
}
监听类
package trying;
import java.awt.event.*;
public class changeLabel extends Something implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
changeName.setText("Andrei");
}
}
我该如何解决这个问题?
【问题讨论】:
-
请重新格式化您的问题。
标签: java