@@ -27,22 +27,20 @@ public class Home extends JFrame implements ActionListener {
|
|||||||
InventoryMenuItem.addActionListener(this);
|
InventoryMenuItem.addActionListener(this);
|
||||||
SalesMenuItem.addActionListener(this);
|
SalesMenuItem.addActionListener(this);
|
||||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
setBounds(100,100,500,500);
|
setSize(500,500);
|
||||||
|
setLocationRelativeTo(null);
|
||||||
setVisible(true);
|
setVisible(true);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
if(e.getSource()==StockMenuItem){
|
if(e.getSource()==StockMenuItem){
|
||||||
new StockProductManagement();
|
new StockProductManagement();
|
||||||
this.setVisible(false);
|
|
||||||
}
|
}
|
||||||
if(e.getSource()==InventoryMenuItem){
|
if(e.getSource()==InventoryMenuItem){
|
||||||
new InventoryProductManagement();
|
new InventoryProductManagement();
|
||||||
this.setVisible(false);
|
|
||||||
}
|
}
|
||||||
if(e.getSource()==SalesMenuItem){
|
if(e.getSource()==SalesMenuItem){
|
||||||
new SalesProductManagement();
|
new SalesProductManagement();
|
||||||
this.setVisible(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,170 @@
|
|||||||
package com.example;
|
package com.example;
|
||||||
|
|
||||||
public class InventoryProductManagement {
|
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 InventoryProductManagement extends JFrame implements ActionListener {
|
||||||
|
JMenuBar menuBar;
|
||||||
|
JMenu menu;
|
||||||
|
JMenuItem menuItem1,menuItem2,menuItem3;
|
||||||
|
private JTable table;
|
||||||
|
private DefaultTableModel tableModel;
|
||||||
|
InventoryProductManagement() {
|
||||||
|
super("进货信息管理");
|
||||||
|
menuBar = new JMenuBar();
|
||||||
|
setJMenuBar(menuBar);
|
||||||
|
menu = new JMenu("菜单");
|
||||||
|
menuBar.add(menu);
|
||||||
|
menuItem1 = new JMenuItem("添加商品");
|
||||||
|
menuItem2 = new JMenuItem("删除商品");
|
||||||
|
menu.add(menuItem1);
|
||||||
|
menu.add(menuItem2);
|
||||||
|
// menu.add(menuItem3);
|
||||||
|
menuItem1.addActionListener(this);
|
||||||
|
menuItem2.addActionListener(this);
|
||||||
|
// menuItem3.addActionListener(this);
|
||||||
|
setSize(500,500);
|
||||||
|
setLocationRelativeTo(null);
|
||||||
|
// 表头
|
||||||
|
String[] columnNames = {"商品名称", "商品数量", "进货单价"};
|
||||||
|
tableModel = new DefaultTableModel(columnNames, 0);
|
||||||
|
table = new JTable(tableModel);
|
||||||
|
|
||||||
|
// 滚动面板
|
||||||
|
JScrollPane scrollPane = new JScrollPane(table);
|
||||||
|
add(scrollPane, BorderLayout.CENTER);
|
||||||
|
|
||||||
|
// 初始化加载数据库数据
|
||||||
|
loadData();
|
||||||
|
setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadData() {
|
||||||
|
Jdbc jdbc = new Jdbc();
|
||||||
|
try {
|
||||||
|
ResultSet rs = jdbc.query("SELECT name,count,purchase_price,selling_price,profit,quantity_sold FROM commodity");
|
||||||
|
// 清空旧数据
|
||||||
|
tableModel.setRowCount(0);
|
||||||
|
// 填充新数据
|
||||||
|
while (rs.next()) {
|
||||||
|
Object[] row = {
|
||||||
|
rs.getString("name"),
|
||||||
|
rs.getInt("count"),
|
||||||
|
rs.getDouble("purchase_price"),
|
||||||
|
};
|
||||||
|
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() == menuItem1) {
|
||||||
|
JFrame frame = new JFrame();
|
||||||
|
frame.setTitle("添加商品");
|
||||||
|
frame.setLayout(new GridLayout(4, 2));
|
||||||
|
JLabel nameLabel = new JLabel("商品名称:");
|
||||||
|
JTextField nameField = new JTextField();
|
||||||
|
JLabel countLabel = new JLabel("商品数量:");
|
||||||
|
JTextField countField = new JTextField();
|
||||||
|
JLabel purchasePriceLabel = new JLabel("进货单价:");
|
||||||
|
JTextField purchasePriceField = new JTextField();
|
||||||
|
JButton addButton = new JButton("添加");
|
||||||
|
JButton cancelButton = new JButton("取消");
|
||||||
|
frame.add(nameLabel);
|
||||||
|
frame.add(nameField);
|
||||||
|
frame.add(countLabel);
|
||||||
|
frame.add(countField);
|
||||||
|
frame.add(purchasePriceLabel);
|
||||||
|
frame.add(purchasePriceField);
|
||||||
|
frame.add(addButton);
|
||||||
|
frame.add(cancelButton);
|
||||||
|
addButton.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
String name = nameField.getText();
|
||||||
|
int count = Integer.parseInt(countField.getText());
|
||||||
|
double purchasePrice = Double.parseDouble(purchasePriceField.getText());
|
||||||
|
// 调用数据库添加方法
|
||||||
|
Jdbc jdbc = new Jdbc();
|
||||||
|
try {
|
||||||
|
jdbc.update("INSERT INTO commodity (name, count, purchase_price, quantity_sold) VALUES ('" + name + "', " + count + ", " + purchasePrice + ", " + 0 + ");");
|
||||||
|
jdbc.close();
|
||||||
|
// 刷新数据
|
||||||
|
loadData();
|
||||||
|
// 关闭弹窗
|
||||||
|
frame.dispose();
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
JOptionPane.showMessageDialog(frame, "添加商品失败: " + ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
cancelButton.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
frame.dispose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
frame.setSize(300, 200);
|
||||||
|
frame.setLocationRelativeTo(null);
|
||||||
|
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
||||||
|
frame.setVisible(true);
|
||||||
|
}
|
||||||
|
else if (e.getSource() == menuItem2) {
|
||||||
|
JFrame frame = new JFrame();
|
||||||
|
frame.setTitle("删除商品");
|
||||||
|
frame.setLayout(new GridLayout(2, 2));
|
||||||
|
JLabel nameLabel = new JLabel("商品名称:");
|
||||||
|
JTextField nameField = new JTextField();
|
||||||
|
JButton deleteButton = new JButton("删除");
|
||||||
|
JButton cancelButton = new JButton("取消");
|
||||||
|
frame.add(nameLabel);
|
||||||
|
frame.add(nameField);
|
||||||
|
frame.add(deleteButton);
|
||||||
|
frame.add(cancelButton);
|
||||||
|
deleteButton.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
String name = nameField.getText();
|
||||||
|
// 调用数据库删除方法
|
||||||
|
Jdbc jdbc = new Jdbc();
|
||||||
|
try {
|
||||||
|
jdbc.update("DELETE FROM commodity WHERE name='" + name + "'");
|
||||||
|
jdbc.close();
|
||||||
|
// 刷新数据
|
||||||
|
loadData();
|
||||||
|
// 关闭弹窗
|
||||||
|
frame.dispose();
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
JOptionPane.showMessageDialog(frame, "删除商品失败: " + ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
cancelButton.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
frame.dispose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
frame.setSize(300, 200);
|
||||||
|
frame.setLocationRelativeTo(null);
|
||||||
|
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
||||||
|
frame.setVisible(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static void main(String[] args) {
|
||||||
|
new InventoryProductManagement();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ import java.util.Random;
|
|||||||
|
|
||||||
public class Main extends JFrame implements ActionListener {
|
public class Main extends JFrame implements ActionListener {
|
||||||
|
|
||||||
JButton jb1,jb2;
|
JButton jb1,jb2,jb3;
|
||||||
JTextField tf1,tf3;
|
JTextField tf1,tf3;
|
||||||
JPasswordField tf2;
|
JPasswordField tf2;
|
||||||
JLabel jl1,jl2,jl3,jl4,jl5;
|
JLabel jl1,jl2,jl3,jl4;
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
Main(){
|
Main(){
|
||||||
super("登录");
|
super("登录");
|
||||||
@@ -26,18 +26,21 @@ public class Main extends JFrame implements ActionListener {
|
|||||||
jl2=new JLabel("密码",JLabel.CENTER);
|
jl2=new JLabel("密码",JLabel.CENTER);
|
||||||
jl3=new JLabel("验证码",JLabel.CENTER);
|
jl3=new JLabel("验证码",JLabel.CENTER);
|
||||||
jl4=new JLabel("验证码:",JLabel.CENTER);
|
jl4=new JLabel("验证码:",JLabel.CENTER);
|
||||||
jl5=new JLabel("",JLabel.CENTER);
|
jb3=new JButton("");
|
||||||
jb1.addActionListener(this);
|
jb1.addActionListener(this);
|
||||||
jb2.addActionListener(this);
|
jb2.addActionListener(this);
|
||||||
|
jb3.addActionListener(this);
|
||||||
setLayout(new GridLayout(5,2));
|
setLayout(new GridLayout(5,2));
|
||||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
add(jl1);add(tf1);
|
add(jl1);add(tf1);
|
||||||
add(jl2);add(tf2);
|
add(jl2);add(tf2);
|
||||||
add(jl3);add(tf3);
|
add(jl3);add(tf3);
|
||||||
add(jl4);add(jl5);
|
add(jl4);add(jb3);
|
||||||
add(jb1);add(jb2);
|
add(jb1);add(jb2);
|
||||||
jl5.setText(Integer.toString(rand.nextInt(100)+100));
|
jb3.setText(Integer.toString(rand.nextInt(100)+100));
|
||||||
setBounds(500,100,500,500);
|
setSize(500,500);
|
||||||
|
setLocationRelativeTo(null);
|
||||||
|
|
||||||
setVisible(true);
|
setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,26 +52,27 @@ public class Main extends JFrame implements ActionListener {
|
|||||||
String sql = "select * from user where username='"+tf1.getText()+"' and password='"+tf2.getText()+"'"; ;
|
String sql = "select * from user where username='"+tf1.getText()+"' and password='"+tf2.getText()+"'"; ;
|
||||||
try {
|
try {
|
||||||
ResultSet rs = jdbc.query(sql);
|
ResultSet rs = jdbc.query(sql);
|
||||||
|
if(rs.next()&&tf3.getText().equals(jb3.getText())) {
|
||||||
if(rs.next()&&tf3.getText().equals(jl5.getText())) {
|
|
||||||
JOptionPane.showMessageDialog(null, "登录成功");
|
JOptionPane.showMessageDialog(null, "登录成功");
|
||||||
new Home();
|
new Home();
|
||||||
this.setVisible(false);
|
this.setVisible(false);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
JOptionPane.showMessageDialog(null,"登录失败");
|
JOptionPane.showMessageDialog(null,"登录失败");
|
||||||
jl5.setText(Integer.toString(rand.nextInt(100)+100));
|
jb3.setText(Integer.toString(rand.nextInt(100)+100));
|
||||||
}
|
}
|
||||||
} catch (SQLException ex) {
|
} catch (SQLException ex) {
|
||||||
|
JOptionPane.showMessageDialog(null,"出现错误");
|
||||||
throw new RuntimeException(ex);
|
throw new RuntimeException(ex);
|
||||||
}
|
}
|
||||||
}else if(e.getSource()==jb2){
|
}else if(e.getSource()==jb2){
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
|
}else if(e.getSource()==jb3){
|
||||||
|
jb3.setText(Integer.toString(rand.nextInt(100)+100));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
new Main();
|
new Main();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -71,7 +71,6 @@ public class SalesProductManagement extends JFrame implements ActionListener {
|
|||||||
setSize(500,500);
|
setSize(500,500);
|
||||||
setLocationRelativeTo(null);
|
setLocationRelativeTo(null);
|
||||||
setVisible(true);
|
setVisible(true);
|
||||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 添加窗口关闭功能
|
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public class StockProductManagement extends JFrame implements ActionListener {
|
|||||||
JMenu menu;
|
JMenu menu;
|
||||||
JMenuItem menuItem1,menuItem2,menuItem3;
|
JMenuItem menuItem1,menuItem2,menuItem3;
|
||||||
private JTable table;
|
private JTable table;
|
||||||
private final DefaultTableModel tableModel;
|
private DefaultTableModel tableModel;
|
||||||
StockProductManagement() {
|
StockProductManagement() {
|
||||||
super("库存商品信息管理");
|
super("库存商品信息管理");
|
||||||
menuBar = new JMenuBar();
|
menuBar = new JMenuBar();
|
||||||
@@ -29,13 +29,42 @@ public class StockProductManagement extends JFrame implements ActionListener {
|
|||||||
menuItem1.addActionListener(this);
|
menuItem1.addActionListener(this);
|
||||||
menuItem2.addActionListener(this);
|
menuItem2.addActionListener(this);
|
||||||
// menuItem3.addActionListener(this);
|
// menuItem3.addActionListener(this);
|
||||||
setBounds(100,100,500,500);
|
setSize(500,500);
|
||||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
setLocationRelativeTo(null);
|
||||||
|
|
||||||
// 表头
|
// 表头
|
||||||
String[] columnNames = {"商品名称", "商品数量", "进货单价", "销售单价", "单个利润", "已售数量"};
|
String[] columnNames = {"商品名称", "商品数量", "进货单价", "销售单价", "单个利润","销售数量"};
|
||||||
tableModel = new DefaultTableModel(columnNames, 0);
|
tableModel = new DefaultTableModel(columnNames, 0){
|
||||||
|
@Override
|
||||||
|
public boolean isCellEditable(int row, int column) {
|
||||||
|
return column == 5;
|
||||||
|
}
|
||||||
|
};
|
||||||
table = new JTable(tableModel);
|
table = new JTable(tableModel);
|
||||||
|
|
||||||
|
// 监听单元格编辑完成事件,自动更新数据库
|
||||||
|
table.getModel().addTableModelListener(e -> {
|
||||||
|
int row = e.getFirstRow();
|
||||||
|
int column = e.getColumn();
|
||||||
|
|
||||||
|
if (column == 5) { // 销售数量列
|
||||||
|
String name = (String) tableModel.getValueAt(row, 0); // 商品名称
|
||||||
|
Object value = tableModel.getValueAt(row, column);
|
||||||
|
|
||||||
|
if (value != null && !value.toString().trim().isEmpty()) {
|
||||||
|
try {
|
||||||
|
int quantitySold = Integer.parseInt(value.toString().trim());
|
||||||
|
Jdbc jdbc = new Jdbc();
|
||||||
|
jdbc.update("UPDATE commodity SET quantity_sold=" + quantitySold + " WHERE name='" + name + "'");
|
||||||
|
jdbc.close();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
JOptionPane.showMessageDialog(this, "更新销售数量失败: " + ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// 滚动面板
|
// 滚动面板
|
||||||
JScrollPane scrollPane = new JScrollPane(table);
|
JScrollPane scrollPane = new JScrollPane(table);
|
||||||
add(scrollPane, BorderLayout.CENTER);
|
add(scrollPane, BorderLayout.CENTER);
|
||||||
@@ -80,7 +109,7 @@ public class StockProductManagement extends JFrame implements ActionListener {
|
|||||||
// 调用数据库添加方法
|
// 调用数据库添加方法
|
||||||
Jdbc jdbc = new Jdbc();
|
Jdbc jdbc = new Jdbc();
|
||||||
try {
|
try {
|
||||||
jdbc.update("INSERT INTO commodity (name, count, purchase_price, selling_price, profit, quantity_sold) VALUES ('" + name + "', " + count + ", " + purchasePrice + ", " + sellingPrice + ", " + (sellingPrice - purchasePrice) + ", 0)");
|
jdbc.update("INSERT INTO commodity (name, count, purchase_price, selling_price, profit) VALUES ('" + name + "', " + count + ", " + purchasePrice + ", " + sellingPrice + ", " + (sellingPrice - purchasePrice) + ", 0);");
|
||||||
jdbc.close();
|
jdbc.close();
|
||||||
// 刷新数据
|
// 刷新数据
|
||||||
loadData();
|
loadData();
|
||||||
@@ -99,6 +128,7 @@ public class StockProductManagement extends JFrame implements ActionListener {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
frame.setSize(300, 200);
|
frame.setSize(300, 200);
|
||||||
|
setLocationRelativeTo(null);
|
||||||
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
||||||
frame.setVisible(true);
|
frame.setVisible(true);
|
||||||
}
|
}
|
||||||
@@ -140,6 +170,7 @@ public class StockProductManagement extends JFrame implements ActionListener {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
frame.setSize(300, 200);
|
frame.setSize(300, 200);
|
||||||
|
setLocationRelativeTo(null);
|
||||||
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
||||||
frame.setVisible(true);
|
frame.setVisible(true);
|
||||||
}
|
}
|
||||||
@@ -159,7 +190,6 @@ public class StockProductManagement extends JFrame implements ActionListener {
|
|||||||
rs.getDouble("purchase_price"),
|
rs.getDouble("purchase_price"),
|
||||||
rs.getDouble("selling_price"),
|
rs.getDouble("selling_price"),
|
||||||
rs.getDouble("profit"),
|
rs.getDouble("profit"),
|
||||||
rs.getInt("quantity_sold")
|
|
||||||
};
|
};
|
||||||
tableModel.addRow(row);
|
tableModel.addRow(row);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user