gettext()null指针异常

时间:2010-08-06 06:07:36

标签: java

考虑以下代码

public class sqldetails extends JFrame implements ActionListener{

static String username=null;
static String password=null;
JButton button;
JTextField utext,ptext;

public static void main(String[] args){
new sqldetails();
}

sqldetails() {
    this.setTitle("Sql details");
    JPanel panel=new JPanel();
    panel.setLayout(new GridBagLayout());

    JLabel ulabel=new JLabel("Enter your Sql username");
    panel.add(ulabel);
    addItem(panel,ulabel,0,0,1,1,GridBagConstraints.WEST);

    JTextField utext=new JTextField(9);
    panel.add(utext);
    addItem(panel,utext,1,0,1,1,GridBagConstraints.WEST);

    JLabel plabel=new JLabel("Enter your Sql password");
    panel.add(plabel);
    addItem(panel,plabel,0,1,1,1,GridBagConstraints.WEST);

    JTextField ptext=new JTextField(9);
    panel.add(ptext);
    addItem(panel,ptext,1,1,1,1,GridBagConstraints.WEST);

    button =new JButton("enter");
    button.addActionListener(this);
    panel.add(button);
    addItem(panel,button,0,2,1,1,GridBagConstraints.CENTER);
    this.add(panel);
    this.pack();
    this.setVisible(true);
}

private void addItem(JPanel panel, JComponent c, int i, int j,
        int k, int l, int align) {
    GridBagConstraints calc=new GridBagConstraints();
    calc.gridx=i;
    calc.gridy=j;
    calc.gridwidth=k;
    calc.gridheight=l;
    calc.weightx=100.0;
    calc.weighty=100.0;
    calc.insets=new Insets(5,5,5,5);
    calc.anchor=align;
    calc.fill=GridBagConstraints.NONE;
    panel.add(c,calc);      

}


public void actionPerformed(ActionEvent arg0) {
    if(arg0.getSource()==button){
        username +=utext.getText();
        utext.setText(null);
        password +=ptext.getText();
        ptext.setText(null);
        new sqlconnection();
        new gui();
        new first();
    }
}

但是我编译它,我在gettext()行中得到java.lang.NullPointerException。 帮助将不胜感激:))

1 个答案:

答案 0 :(得分:3)

多数民众赞成因为构造函数sql details()中的变量text和text会影响同名的实例变量

sqldetails() {
    .....

    // JTextField utext=new JTextField(9); //====> shadows the instance variable utext
    this.utext=new JTextField(9); // This is the correct use
    panel.add(utext);
    addItem(panel,utext,1,0,1,1,GridBagConstraints.WEST);

    .......

    // JTextField ptext=new JTextField(9); //=====> shadows the instance variable ptext
    this.ptext = new JtextField();  // This is the correct use

    .......
}