📄 loginscreen.java
字号:
package system;
import system.DataBase;
import system.MainScreen;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.sql.*;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
public class LoginScreen extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private static JButton cancelbutton = new JButton("取消");
private static JButton okbutton = new JButton("登陆");
private static JLabel passlabel = new JLabel("密码");
private static JLabel userlabel = new JLabel("用户名");
private JLabel userLabel = new JLabel("用户");
private JComboBox box = new JComboBox();
public JPasswordField passtext = new JPasswordField(20);
public JTextField usertext = new JTextField(20);
public static void main(String args[]) {
JFrame screen = new LoginScreen();
screen.repaint();
screen.setVisible(true);
screen.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
public LoginScreen() {
super("用户登陆");
initialize();
}
public LoginScreen(String args) {
super("用户登陆");
initialize();
};
private void initialize() {
setLocation(450, 250);
setSize(300, 200);
setResizable(false);
this.getContentPane().setLayout(null);
// okbutton.setFocusable(true);
userlabel.setBounds(new Rectangle(15, 20, 60, 20));
passlabel.setBounds(new Rectangle(15, 50, 60, 20));
usertext.setBounds(80, 20, 160, 20);
passtext.setBounds(new Rectangle(80, 50, 160, 20));
userLabel.setBounds(15, 80, 40, 20);
box.setBounds(80, 80, 100, 20);
box.addItem("管理员");
box.addItem("用户");
okbutton.setBounds(new Rectangle(80, 120, 60, 20));
cancelbutton.setBounds(new Rectangle(150, 120, 60, 20));
getContentPane().add(userlabel);
getContentPane().add(passlabel);
getContentPane().add(usertext);
getContentPane().add(passtext);
this.getContentPane().add(userLabel);
this.getContentPane().add(box);
getContentPane().add(okbutton);
getContentPane().add(cancelbutton);
ActionListener s = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
login();
}
};
this.getRootPane().registerKeyboardAction(s,
KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false),
JComponent.WHEN_IN_FOCUSED_WINDOW);
okbutton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
login();
}
});
cancelbutton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.exit(0);
}
});
}
public void login() {
String table = "";
String val[] = new String[3];
val[0] = usertext.getText();
val[1] = new String(passtext.getPassword());
val[2] = box.getSelectedItem().toString();
if (val[2].equals("管理员")) {
table = "admin";
} else {
table = "user";
}
if (val[0].equals("")) {
JOptionPane.showMessageDialog(null, "用户名不能为空");
usertext.requestFocus();
return;
} else if (val[1].equals("")) {
JOptionPane.showMessageDialog(null, "密码不能为空");
passtext.setText("");
passtext.requestFocus();
return;
}
check(val[0], val[1], table);
}
public void check(String val1, String val2, String val3) {
String name = val1;
String password = val2;
String table = val3;
String msg = val3;
boolean flag = false;
if (msg.equals("admin")) {
flag = true;
}
String sql = "select*from " + table + " where name='" + name
+ "' and password='" + password + "';";
sql = changeChar.gbToiso(sql);// 转换为iso以查询中文字符
System.out.println(sql);
Statement stmt = null;
ResultSet rs = null;
DataBase db = new DataBase();
db.connect();
try {
stmt = db.conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (rs.first()) {
dispose();
MainScreen p = new MainScreen();
p.setName(name);
p.setPassword(password);
p.setTrue(flag);
p.initialize();
p.repaint();
p.setVisible(true);
} else {
JOptionPane.showMessageDialog(null, "用户名或密码有误");
usertext.setText("");
passtext.setText("");
usertext.requestFocus();
return;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
rs.close();
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent arg0) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -