0

I'm confused about initializing the Swing components like JTextField and other components. Calling from the DoSth class, the getTxtUser returns null pointer exception whereas if getTxtUser() from its own class returns the value correctly.Please help me.Thanks Code:

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
     ...............
 }
4

1 に答える 1

2

txtUnameはコンストラクターで初期化されないため、メソッドgetTxtUserフォームDoSthクラスを呼び出すと NPE が発生します。GUI コンポーネントの初期化をコンストラクターに移動するか、 showGUIメソッドを呼び出して初期化します。

GUI g = new GUI();
g.showGUI();
String user = g.getTxtUser(); 
于 2013-11-04T04:09:44.597 に答える