private void initComponents() {        //登录方法
        jButton1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
String userno = jTextField1.getText();
String password = new String(jPasswordField1.getPassword());
if (userno.equals("")) {
MsgLabel.setText("*请输入编号");
return;
} else if (password.equals("")){
MsgLabel.setText("*请输入密码");
return;
}
if (userlist != null) {
if (userlist.getUserno().equals(userno) && userlist.getUserpwd().equals(CommonFunction.MD5(password))) {
new Chat();
dispose();
} else {
MsgLabel.setText("*编号或密码错误");
}
} else {
userlist = userlistMapper.getUserlistByNo(userno);
if (userlist != null && userlist.getUserpwd().equals(CommonFunction.MD5(password))) {
jTextField2.setText(userlist.getUsername());
MsgLabel.setText("");
} else {
jTextField2.setText("");
MsgLabel.setText("*编号不存在");
}
}
}
        
        });
    }
代码如上,点击button1,取不到jTextField1和jPasswordField1的值,userno和password一直是空串怎么回事,新手求教

解决方案 »

  1.   

    你button1有加监听器吗
    button1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    initComponents();
    }
    });
      

  2.   

    有啊  第二行就是了
         jButton1.addActionListener(new ActionListener(){            public void actionPerformed(ActionEvent e) {
      

  3.   

    你可以测试下打印:jTextField1.getText().trim(),另外你在监听类里的dispose()方法是重新定义的吗?不是组件的dispose方法吧?我估计后者会报错。
    提议做以下检查:
    1)按钮名对否对应;
    2)文本框、密码框是否对应;
    3)确保在构造方法中(不一定)调用了initComponents()方法。
      

  4.   

    我最近小学期作业在做ATM系统,做登录界面时,在输入账号和密码总是多按很多次键(刚开始以为Java GUI反应慢),然后才能显示出账号和密码,还显示输入错误登不上。后来知道是那个TextField那出的问题,在登录窗口时,TextField应该看得到光标在其中闪烁等待输入。我想你应该也是这的问题。
      

  5.   

    发现问题了,我的initComponents()调用了两次,悲剧 感谢各位