我对初始化 Swing 组件(如 JTextField 和其他组件)感到困惑。从DoSth类调用,getTxtUser返回空指针异常,而如果从它自己的类中调用getTxtUser()则正确返回值。请帮助我。谢谢 代码:
public class GUI{
private JLabel lblUname;
private JTextField txtUname;
public void showGUI(){
lblUname = new JLabel("Username");
txtUname = new JTextField(20);
....................
}
public String getTxtUser(){
return this.txtUname.getText();
}
}
public class DoSth(){
..............
GUI g = new GUI();
String user = g.getTxtUser(); //null pointer Exception even if it has some value
...............
}
最佳答案
txtUname
未在构造函数中初始化,因此调用 DoSth
类中的方法 getTxtUser
会导致 NPE。将 GUI 组件初始化移至构造函数中,或调用 showGUI
方法来初始化它们。
GUI g = new GUI();
g.showGUI();
String user = g.getTxtUser();
关于Java 关于初始化 swing 组件的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19761480/