📄 login.java
字号:
//作者:沈阳
//时间:200年11月7日
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;
/*--------------------------------------Login------------------------------------------*/
class Login extends JDialog implements ActionListener{
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
JPanel p4 = new JPanel();
JPanel p5 = new JPanel();
JTextField txtUserName = new JTextField(15);
JPasswordField txtPassWord = new JPasswordField(15);
JButton submit = new JButton("登录S");
JButton reset = new JButton("重置R");
static int count;
public Login(){
count = 0;
setModal(true);
setBackground(Color.LIGHT_GRAY);
Container contentPane = this.getContentPane();
contentPane.setLayout(new GridLayout(5,1));
p2.add(new JLabel("用户名:"));
p2.add(txtUserName);
p3.add(new JLabel("密 码:"));
p3.add(txtPassWord);
submit.setMnemonic('S');
reset.setMnemonic('R');
p4 = new JPanel(new FlowLayout(FlowLayout.CENTER,35,5));
p4.add(submit);
p4.add(reset);
submit.addActionListener(this);
reset.addActionListener(this);
txtUserName.addActionListener(this);
txtPassWord.addActionListener(this);
contentPane.add(p1);
contentPane.add(p2);
contentPane.add(p3);
contentPane.add(p4);
contentPane.add(p5);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(300,220);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screen.width - 300) / 2,(screen.height - 220) / 2);
setTitle("登录窗口");
setResizable(false);
setVisible(true);
}
//----------------------------------actionPerformed-------------------------------------
public void actionPerformed(ActionEvent e){
Statement stm = null;
ResultSet rst = null;
boolean flag = false;
int priority = 0;
String userName = txtUserName.getText().trim();
String password = txtPassWord.getText().trim();
ConnectServer.mainLink(); //建立和数据库的连接。
try{
stm = ConnectServer.con.createStatement
(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rst = stm.executeQuery("SELECT * FROM [user]");
while(rst.next()){
if(userName.equals(rst.getString("user_name"))&& password.equals(rst.getString("password")) ){
flag = true;
priority =Integer.parseInt(rst.getString("priority"));
}
}
stm.close(); //关闭数据库连接
ConnectServer.close();
//--------------------------------判断用户名和密码是否合法-----------------------------------
if(e.getSource() == submit || e.getSource() == txtPassWord){
if(flag == true){
dispose();
new MainWindow(priority); // for latter change.
}
else{
count++;
if(count >= 3){ //提供三次输入机会,超过三次则自动锁定。
JOptionPane.showMessageDialog(null,"输入超过三次,已被锁定!");
dispose();
System.exit(0);
}
JOptionPane.showMessageDialog(null,"用户名或密码错误!");
txtUserName.setText("");
txtPassWord.setText("");
txtUserName.requestFocus();
txtUserName.setSelectionStart(0);
txtUserName.setSelectionEnd(txtUserName.getText().length());
}
}
else if(e.getSource() == reset){
txtUserName.setText("");
txtPassWord.setText("");
txtUserName.requestFocus();
txtUserName.setSelectionStart(0);
txtUserName.setSelectionEnd(txtUserName.getText().length());
}
else if(e.getSource() == txtUserName){
txtPassWord.requestFocus();
}
}
catch(Exception ee){
JOptionPane.showMessageDialog(null,"数据库操作失败!");
System.exit(0);
}
}// end of actionPerformed
}// end of class Login
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -