日期:2014-05-20  浏览次数:20707 次

swing做的登录界面取不到Textfield的值
Java code

   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一直是空串怎么回事,新手求教

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

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

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