2013-11-04 43 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();