2013-11-04 42 views
0

我对初始化Swing组件如JTextField和其他组件感到困惑。从DoSth类调用,该getTxtUser返回空指针异常而如果getTxtUser()从自己的类返回值correctly.Please帮助me.Thanks 代码:关于初始化swing组件的Java混淆

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 
    ............... 
} 
+1

你从来没有调用“showGUI()” –

+0

不应该有一些'showGUI()'代码在构造函数中吗? –

+0

感谢大家,但管理代码对我来说确实非常困难。 – BulletProof47

回答

2

txtUname没有在构造函数中,因此初始化在NPE中调用方法getTxtUserDoSth类的结果。要么在构造函数中移动GUI组件的初始化,要么调用showGUI方法来初始化它们。

GUI g = new GUI(); 
g.showGUI(); 
String user = g.getTxtUser();