swing mysql的一个小问题

帮忙看下这个函数,不知道哪里出了问题,这个注册模块放到程序里面,不能注册两次,当第一次注册成功后,第二次注册一直无法正常从输入框正常读取数据,读到的一直为空

public void Register() {
    String z_user=String.valueOf(tfUser.getText());
    String z_pass=String.valueOf(tfPass.getText());

    tfUser.setText("");
    tfPass.setText("");

    Connection conn = null;
    PreparedStatement psta=null;
    ResultSet rs = null;
    String sql = null;

    try {
        conn = DriverManager.getConnection(url,user,pass);

        //这个sql语句的功能是判断输入的账号已在数据库中,已被注册
        sql = "select r_account from register where r_account=?";
        psta = conn.prepareStatement(sql);
        psta.setString(1, z_user);

        rs = psta.executeQuery();
        rs.next();
        if(rs.next()) {         //若输入的账号已被注册,则进行相应提示,重新输入
            tfUser.setText("");
            tfPass.setText("");
            JOptionPane.showMessageDialog(null, "该用户已注册,请重新输入用户名!!",
                    "提醒!",JOptionPane.INFORMATION_MESSAGE);
        }

        else {          
                    tfUser.setText("");
                    tfPass.setText("");
                    sql = "insert into register (r_account,r_password) values (?, ?)";
                    psta = conn.prepareStatement(sql);

                    psta.setString(1,z_user);
                    psta.setString(2,z_pass);
                    psta.executeUpdate();

                    dRegister1.setVisible(false);
                    JOptionPane.showMessageDialog(null, "注册成功",
                            "提醒!",JOptionPane.INFORMATION_MESSAGE);
            }

    }
    catch(SQLException e) {
        e.printStackTrace();
    } finally {
        try {
            if(rs != null) {
                rs.close();
            }
            if(psta != null) {
                psta.close();
            }
            if(conn != null) {
                conn.close();
            }
        } catch(SQLException e) {
            e.printStackTrace();
        }
    }       
}

用输出语句调试了下,发现第一次成功,账号密码都是正确读取的,为什么成功一次后,getText()读出来的 "" 空