分用户登录

This commit is contained in:
lu
2025-09-24 13:18:41 +08:00
parent 4e0a460a59
commit 7f954cfeff
6 changed files with 257 additions and 20 deletions

BIN
images/OIP.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
images/a.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 KiB

View File

@@ -1,31 +1,63 @@
package com.example;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Home extends JFrame implements ActionListener {
JMenuBar menuBar;
JMenu menu;
// 库存菜单 进货菜单 销售菜单
JMenuItem StockMenuItem,InventoryMenuItem,SalesMenuItem;
JMenuItem StockMenu,InventoryMenu,SalesMenu,UserMenu;
class BackgroundPanel extends JPanel {
private Image bg;
public BackgroundPanel(String path) {
bg = new ImageIcon(path).getImage();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (bg != null) {
g.drawImage(bg, 0, 0, getWidth(), getHeight(), this);
}
}
}
Home() {
Home(String username) {
super("超市进销存信息管理系统");
BackgroundPanel bgPanel = new BackgroundPanel("E:\\SuManagement\\images\\a.jpg");
bgPanel.setLayout(new BorderLayout());
setContentPane(bgPanel);
menuBar = new JMenuBar();
menu = new JMenu("菜单");
StockMenuItem = new JMenuItem("库存信息管理");
InventoryMenuItem = new JMenuItem("进货信息管理");
SalesMenuItem = new JMenuItem("销售信息管理");
menu.add(StockMenuItem);
menu.add(InventoryMenuItem);
menu.add(SalesMenuItem);
menuBar.add(menu);
StockMenu = new JMenuItem("库存信息管理");
InventoryMenu = new JMenuItem("进货信息管理");
SalesMenu = new JMenuItem("销售信息管理");
menuBar.add(StockMenu);
menuBar.add(InventoryMenu);
menuBar.add(SalesMenu);
setJMenuBar(menuBar);
StockMenuItem.addActionListener(this);
InventoryMenuItem.addActionListener(this);
SalesMenuItem.addActionListener(this);
StockMenu.addActionListener(this);
InventoryMenu.addActionListener(this);
SalesMenu.addActionListener(this);
Jdbc jdbc = new Jdbc();
String sql = "select * from user where username='"+username+"'";
try {
ResultSet rs = jdbc.query(sql);
if(rs.next()){
username = rs.getString("identity");
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
if(username.equals("admin")){
UserMenu = new JMenuItem("用户管理");
menuBar.add(UserMenu);
UserMenu.addActionListener(this);
}
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,500);
setLocationRelativeTo(null);
@@ -33,14 +65,20 @@ public class Home extends JFrame implements ActionListener {
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==StockMenuItem){
if(e.getSource()==StockMenu){
new StockProductManagement();
}
if(e.getSource()==InventoryMenuItem){
if(e.getSource()==InventoryMenu){
new InventoryProductManagement();
}
if(e.getSource()==SalesMenuItem){
if(e.getSource()==SalesMenu){
new SalesProductManagement();
}
if(e.getSource()==UserMenu){
new UserManagement();
}
}
public static void main(String[] args) {
new Home("admin");
}
}

View File

@@ -21,8 +21,8 @@ public class InventoryProductManagement extends JFrame implements ActionListener
menu = new JMenu("菜单");//创建顶级菜单“菜单”
menuBar.add(menu);//将菜单添加到菜单栏
//创建菜单项
menuItem1 = new JMenuItem("添加商品");
menuItem2 = new JMenuItem("删除商品");
menuItem1 = new JMenuItem("进货");
menuItem2 = new JMenuItem("删除");
menuItem3 = new JMenuItem("帮助");
//添加菜单项到菜单
menu.add(menuItem1);

View File

@@ -54,7 +54,7 @@ public class Main extends JFrame implements ActionListener {
ResultSet rs = jdbc.query(sql);
if(rs.next()&&tf3.getText().equals(jb3.getText())) {
JOptionPane.showMessageDialog(null, "登录成功");
new Home();
new Home(rs.getString("username"));
this.setVisible(false);
}
else{

View 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();
}
}