package zxl;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;import java.sql.*;public class Enter implements ActionListener
{
    JTextField user;
    JPasswordField passWd;
    Container contentPane;
    JButton b1,b2;
    JPanel pan1,pan2,pan3,pan4;
    JFrame bms;
    JDialog dialog;
    JLabel label;
    Connection conn;
    Statement stmt;
    ResultSet rs;
    String str1,str2,name,passwd,sql;
    
    public Enter(JFrame bms)
  {
    dialog=new JDialog(bms,"登陆",true);
    contentPane=dialog.getContentPane();
    pan1=new JPanel();
    pan2=new JPanel();
    pan3=new JPanel();
    pan4=new JPanel();
    pan1.add(new JLabel("用户",SwingConstants.CENTER));
    user=new JTextField("",10);
    pan1.add(user);
    pan2.add(new JLabel("密码",SwingConstants.CENTER));
    passWd=new JPasswordField("",10);
    pan2.add(passWd);
    b1=new JButton ("确定");
    b2=new JButton ("取消");
    pan3.add(b1);
    pan3.add(b2);
    label=new JLabel();
    pan4.add(label);
    b1.addActionListener(this);
    b2.addActionListener(this);
    contentPane.setLayout(new GridLayout(4,1));
    contentPane.add(pan1);
    contentPane.add(pan2);
    contentPane.add(pan3);
    contentPane.add(pan4);
    dialog.setBounds(200,150,250,150);
    dialog.show();   
  }
  
      public void actionPerformed(ActionEvent e) 
  {
           name=user.getText();
           passwd=passWd.getText();
           label.setText("用户名:"+name+"  密码:"+passwd);
           //System.out.println(name+passwd);
          if(e.getActionCommand().equals("确定"))
        {
            sql="select * from USER where NAME='";
            sql+=name+"' and PASSWORD='";
            sql+=passwd+"'";
            System.out.println(sql);
            conn=ConnectDB2.getConnection();
            rs=ConnectDB2.getResultSet(sql);
            if(name.equals("")||passwd.equals(""))
               {
                JOptionPane.showMessageDialog(dialog, "用户名和密码不能为空!");
               }
            try
           {
                while(rs.next())
             {
                str1=rs.getString(1);
                str2=rs.getString(2);
                System.out.println(str1);
                 
                [color=#FF00FF]if(name.equals(str1))
                  {
                        System.out.println(str2);
                        JOptionPane.showMessageDialog(dialog, "登陆成功");
                  }   [/color]    
         
             }           }
           catch(Exception ec)
           {
   
           } 
          ConnectDB2.disConnection(conn);
          
        }
        if(e.getActionCommand().equals("取消"))
        {
            System.exit(0);
        }
  }
}
我编译之后,上面标注的那段不能实现!
不知道为什么弹不出登录窗口。
请高手看看!

解决方案 »

  1.   

    打印输出一下str1  str2是否有值  先排除sql语句没查到数据的可能
      

  2.   

    passwd=passWd.getText(); 
    方法是不是不对。看有没有别的方法。
    文本框和密码框取值好像不一样。好久没做了你自已看下
      

  3.   

    System.out.println(str2); 
    这个已经print出来了吗?
      

  4.   

    str2打印不出来!
    if(name.equals(str1)) 
                      { 
                            System.out.println(str2); 
                            JOptionPane.showMessageDialog(dialog, "登陆成功"); 
    这个if语句好像执行不了啊
      

  5.   

    passwd = String.valueOf(passWd.getPassword());
    用这个获取密码框的值str1有值跟name=user.getText();这里获取的值一样?
    看看是不是有空格什么的 if条件没执行说明name.equals(str1)这个不成立
      

  6.   

    没有相同的记录啊!
    Str1的值和name=user.getText()这里的一样.
    if(name.equals(str1)) 
                      { 
                            System.out.println(str2); 
                            JOptionPane.showMessageDialog(dialog, "登陆成功"); 
    就是这个IF执行不了啊!
    有没有别的来取代name.equals(str1)这句的
      

  7.   

    你的数据表USER 只有name和PASSWORD两个列吗?如果不是,可能是执行
    str1=rs.getString(1); 
    str2=rs.getString(2); 
    时出的问题,建议使用
    sql="select NAME,PASSWORD from USER where NAME='"; 
                sql+=name+"' and PASSWORD='"; 
                sql+=passwd+"'"; 
    试一试。另外一定要保证NAME和PASSWORD 的数据类型是字符型才可以取出正确的值
      

  8.   

    我把你的东西修改了一下,可以弹出登陆窗口了,没有弹出是因为你没有new Enter();