分用户登录
This commit is contained in:
199
src/main/java/com/example/UserManagement.java
Normal file
199
src/main/java/com/example/UserManagement.java
Normal file
@@ -0,0 +1,199 @@
|
||||
package com.example;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class UserManagement extends JFrame implements ActionListener {
|
||||
|
||||
JMenuBar menuBar;
|
||||
JMenuItem addItem, deleteItem, updateItem, refreshItem;
|
||||
private JTable table;
|
||||
private DefaultTableModel tableModel;
|
||||
|
||||
public UserManagement() {
|
||||
super("用户信息管理");
|
||||
|
||||
// 菜单栏
|
||||
menuBar = new JMenuBar();
|
||||
setJMenuBar(menuBar);
|
||||
|
||||
addItem = new JMenuItem("添加用户");
|
||||
deleteItem = new JMenuItem("删除用户");
|
||||
updateItem = new JMenuItem("修改用户");
|
||||
refreshItem = new JMenuItem("刷新数据");
|
||||
|
||||
menuBar.add(addItem);
|
||||
menuBar.add(deleteItem);
|
||||
menuBar.add(updateItem);
|
||||
menuBar.add(refreshItem);
|
||||
|
||||
addItem.addActionListener(this);
|
||||
deleteItem.addActionListener(this);
|
||||
updateItem.addActionListener(this);
|
||||
refreshItem.addActionListener(this);
|
||||
|
||||
// 表格模型
|
||||
String[] columnNames = {"用户名", "密码", "身份"};
|
||||
tableModel = new DefaultTableModel(columnNames, 0) {
|
||||
@Override
|
||||
public boolean isCellEditable(int row, int column) {
|
||||
return false; // 不直接在表格里改
|
||||
}
|
||||
};
|
||||
table = new JTable(tableModel);
|
||||
|
||||
JScrollPane scrollPane = new JScrollPane(table);
|
||||
add(scrollPane, BorderLayout.CENTER);
|
||||
|
||||
setSize(600, 400);
|
||||
setLocationRelativeTo(null);
|
||||
|
||||
// 初始加载
|
||||
loadData();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
// 加载 identity=user 的数据
|
||||
private void loadData() {
|
||||
Jdbc jdbc = new Jdbc();
|
||||
try {
|
||||
ResultSet rs = jdbc.query("SELECT username,password,identity FROM user WHERE identity='user'");
|
||||
tableModel.setRowCount(0);
|
||||
while (rs.next()) {
|
||||
Object[] row = {
|
||||
rs.getString("username"),
|
||||
rs.getString("password"),
|
||||
rs.getString("identity")
|
||||
};
|
||||
tableModel.addRow(row);
|
||||
}
|
||||
rs.close();
|
||||
jdbc.close();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
JOptionPane.showMessageDialog(this, "加载数据失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// 添加用户
|
||||
if (e.getSource() == addItem) {
|
||||
JFrame frame = new JFrame("添加用户");
|
||||
frame.setLayout(new GridLayout(5, 2));
|
||||
JLabel nameLabel = new JLabel("用户名:");
|
||||
JTextField nameField = new JTextField();
|
||||
JLabel passLabel = new JLabel("密码:");
|
||||
JPasswordField passField = new JPasswordField();
|
||||
JButton addButton = new JButton("添加");
|
||||
JButton cancelButton = new JButton("取消");
|
||||
|
||||
frame.add(nameLabel); frame.add(nameField);
|
||||
frame.add(passLabel); frame.add(passField);
|
||||
frame.add(addButton); frame.add(cancelButton);
|
||||
|
||||
addButton.addActionListener(ev -> {
|
||||
String username = nameField.getText();
|
||||
String password = passField.getText();
|
||||
|
||||
Jdbc jdbc = new Jdbc();
|
||||
try {
|
||||
jdbc.update("INSERT INTO user (username,password,email,phone,identity) VALUES ('"
|
||||
+ username + "','" + password + "','user')");
|
||||
jdbc.close();
|
||||
loadData();
|
||||
frame.dispose();
|
||||
} catch (SQLException ex) {
|
||||
JOptionPane.showMessageDialog(frame, "添加失败: " + ex.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
cancelButton.addActionListener(ev -> frame.dispose());
|
||||
frame.setSize(400, 250);
|
||||
frame.setLocationRelativeTo(null);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
else if (e.getSource() == deleteItem) {
|
||||
int row = table.getSelectedRow();
|
||||
if (row == -1) {
|
||||
JOptionPane.showMessageDialog(this, "请先选择要删除的用户!");
|
||||
return;
|
||||
}
|
||||
String username = (String) tableModel.getValueAt(row, 0);
|
||||
int confirm = JOptionPane.showConfirmDialog(this, "确定删除用户: " + username + " ?", "确认", JOptionPane.YES_NO_OPTION);
|
||||
if (confirm == JOptionPane.YES_OPTION) {
|
||||
Jdbc jdbc = new Jdbc();
|
||||
try {
|
||||
jdbc.update("DELETE FROM user WHERE username='" + username + "'");
|
||||
jdbc.close();
|
||||
loadData();
|
||||
} catch (SQLException ex) {
|
||||
JOptionPane.showMessageDialog(this, "删除失败: " + ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 修改用户(选中一行后弹窗修改)
|
||||
else if (e.getSource() == updateItem) {
|
||||
int row = table.getSelectedRow();
|
||||
if (row == -1) {
|
||||
JOptionPane.showMessageDialog(this, "请先选择要修改的用户!");
|
||||
return;
|
||||
}
|
||||
String oldUsername = (String) tableModel.getValueAt(row, 0);
|
||||
|
||||
JFrame frame = new JFrame("修改用户");
|
||||
frame.setLayout(new GridLayout(5, 2));
|
||||
JTextField nameField = new JTextField((String) tableModel.getValueAt(row, 0));
|
||||
JTextField passField = new JTextField((String) tableModel.getValueAt(row, 1));
|
||||
JTextField emailField = new JTextField((String) tableModel.getValueAt(row, 2));
|
||||
JTextField phoneField = new JTextField((String) tableModel.getValueAt(row, 3));
|
||||
JButton saveButton = new JButton("保存");
|
||||
JButton cancelButton = new JButton("取消");
|
||||
|
||||
frame.add(new JLabel("用户名:")); frame.add(nameField);
|
||||
frame.add(new JLabel("密码:")); frame.add(passField);
|
||||
frame.add(new JLabel("邮箱:")); frame.add(emailField);
|
||||
frame.add(new JLabel("电话:")); frame.add(phoneField);
|
||||
frame.add(saveButton); frame.add(cancelButton);
|
||||
|
||||
saveButton.addActionListener(ev -> {
|
||||
String username = nameField.getText();
|
||||
String password = passField.getText();
|
||||
String email = emailField.getText();
|
||||
String phone = phoneField.getText();
|
||||
|
||||
Jdbc jdbc = new Jdbc();
|
||||
try {
|
||||
jdbc.update("UPDATE user SET username='" + username + "', password='" + password + "', email='" + email + "', phone='" + phone + "' WHERE username='" + oldUsername + "'");
|
||||
jdbc.close();
|
||||
loadData();
|
||||
frame.dispose();
|
||||
} catch (SQLException ex) {
|
||||
JOptionPane.showMessageDialog(frame, "修改失败: " + ex.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
cancelButton.addActionListener(ev -> frame.dispose());
|
||||
frame.setSize(400, 250);
|
||||
frame.setLocationRelativeTo(null);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
|
||||
// 刷新数据
|
||||
else if (e.getSource() == refreshItem) {
|
||||
loadData();
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
new UserManagement();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user