import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;public class Login{
JTextField ID;
JPasswordField password;
JFrame jf;
public static void main( String args[]) {
Login Login = new Login();
Login.createUI();
}
public void createUI(){
jf = new JFrame("药品库房管理系统");
jf.add(new JLabel("请输入您的用户信息:"),"North");
JPanel p1 = new JPanel();
p1.setLayout(new BorderLayout());
JPanel p11 = new JPanel();
p11.setLayout(new GridLayout(2,1));//两行一列
p11.add(new JLabel("用户名:"));
p11.add(new JLabel("密  码:"));
JPanel p12 = new JPanel();
p12.setLayout(new GridLayout(2,1));
ID = new JTextField(10);
password = new JPasswordField(10); 
p12.add(ID);
p12.add(password);
p1.add(p11,"West");
p1.add(p12,"Center");
JLabel lab1=new JLabel(new ImageIcon("wy.gif"));
JPanel p2 = new JPanel();
JButton submit= new JButton("提交");
JButton reset = new JButton("重置");
                submit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String id = ID.getText();
String psw= password.getText();
if(checkLogin(id,psw)){
jf.dispose();
MainFrame mf = new MainFrame();
mf.jff.setVisible(true);
}
else{
JOptionPane.showMessageDialog(null,"密码错误");
}
}
public boolean checkLogin(String id,String psw){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:YaoFang";
Connection conn = DriverManager.getConnection(url,"cenjuhui","123");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("Select S_ID from User");
while(rs.next()){
if (id.equals((rs.getString(1).trim()))){
ResultSet rs1 = stmt.executeQuery("Select S_PSW from User");
if (psw.equals((rs1.getString(2).trim()))){
return true;
}
else return false;
}
else{
JOptionPane.showMessageDialog(null,"帐号或密码不存在!请重新输入!");
return false;
}
}
}catch(ClassNotFoundException e){
System.out.println("找不到指定的驱动程序类!");
}catch(SQLException e){
//e.printStackTrace();
}
return false;
}
}
);

reset.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ID.setText("");
password.setText("");
}
}
); p2.add(submit);
p2.add(reset);
jf.add(lab1,"North");
jf.add(p1,"Center");
jf.add(p2,"South");
jf.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});  
jf.setSize(300,230);
jf.setLocation(300,300);
jf.setVisible( true);
}}

解决方案 »

  1.   


    rs1 = stmt.executeQuery("Select S_PSW from User"); 
    if (psw.equals((rs1.getString(2).trim()))){ 
    return true; 

    else return false; 
    } 就说这里吧,至少是少了一句
    if(rs1.next())
    {
       ......
    }
      

  2.   


    public boolean checkLogin(String id,String psw){
    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String url = "jdbc:odbc:YaoFang";
    Connection conn = DriverManager.getConnection(url,"cenjuhui","123");
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("Select S_ID from User");
    ResultSet rs1 = stmt.executeQuery("Select S_PSW from User");
    while(rs.next()){
    if (id.equals((rs.getString("S_ID").trim()))){
    while(rs1.next()){
    if (psw.equals((rs1.getString("S_PSW").trim()))){
    return true;
    }
    else return false;
    }
    }
    else{
    JOptionPane.showMessageDialog(null,"帐号或密码不存在!请重新输入!");
    return false;
    }
    rs.close();
    rs1.close();
    stmt.close();
    conn.close();
    }
    }catch(ClassNotFoundException e){
    System.out.println("找不到指定的驱动程序类!");
    }catch(SQLException e){
    e.printStackTrace();
    }
    }
    }
    );