基于java+mysql的swing+mysql花店鲜花销售信息管理系统进销存(java+swing+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于java+mysql的Swing+MySQL花店鲜花销售信息管理系统进销存(java+swing+mysql)
管理员
admin 123456
普通员工
user 123456
Vector<Vector> vector = new Vector<Vector>();
try {
vector = stockOrderService.selectStockInputByCondition(conditionParams);
} catch (Exception e) {
e.printStackTrace();
}
baseTableModule = new BaseTableModule(params, vector);
table = new JTable(baseTableModule);
Tools.setTableStyle(table);
DefaultTableColumnModel dcm = (DefaultTableColumnModel) table.getColumnModel();// 获取列模型
dcm.getColumn(0).setMinWidth(0); // 将第一列的最小宽度、最大宽度都设置为0
dcm.getColumn(0).setMaxWidth(0);
dcm.getColumn(7).setMinWidth(0); // 将第8列的最小宽度、最大宽度都设置为0
dcm.getColumn(7).setMaxWidth(0);
dcm.getColumn(8).setMinWidth(0); // 将第9列的最小宽度、最大宽度都设置为0
dcm.getColumn(8).setMaxWidth(0);
jScrollPane = new JScrollPane(table);
Tools.setJspStyle(jScrollPane);
tablePanel = new JPanel(new BorderLayout());
tablePanel.setOpaque(false);
tablePanel.add(jScrollPane);
backgroundPanel.add(tablePanel, "Center");
backgroundPanel.validate();
}
// 下拉框改变事件
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == select_category) {
refreshTablePanel();
} else if (e.getSource() == select_warehouse) {
refreshTablePanel();
}
}
// 鼠标点击事件
@Override
public void mouseClicked(MouseEvent e) {
if (e.getSource() == tool_add) {
jTabbedPane.addTab("用户管理", new UserManagerJPanel(user, this).backgroundPanel);
centerPanel.add(jTabbedPane, "Center");
}
// 鼠标点击事件
@Override
public void mouseClicked(MouseEvent e) {
if (e.getSource() == home) {
initSign();
sign_home = 1;
creatHome();
home.setText("<html><font color='#336699' style='font-weight:bold'>" + "首页" + "</font> </html>");
baseData.setText("<html><font color='black'>" + "花的数据" + "</font> </html>");
purchase_sale_stock.setText("<html><font color='black'>" + "销售信息管理" + "</font> </html>");
userManager.setText("<html><font color='black'>" + "用户管理" + "</font> </html>");
} else if (e.getSource() == baseData) {
initSign();
sign_baseData = 1;
creatBaseDataTab();
baseData.setText("<html><font color='#336699' style='font-weight:bold'>" + "花的数据" + "</font> </html>");
home.setText("<html><font color='black'>" + "首页" + "</font> </html>");
purchase_sale_stock.setText("<html><font color='black'>" + "销售信息管理" + "</font> </html>");
userManager.setText("<html><font color='black'>" + "用户管理" + "</font> </html>");
} else if (e.getSource() == purchase_sale_stock) {
initSign();
sign_purchase_sale_stock = 1;
creatpurchaseSaleStockTab();
purchase_sale_stock.setText(
"<html><font color='#336699' style='font-weight:bold'>" + "销售信息管理" + "</font> </html>");
home.setText("<html><font color='black'>" + "首页" + "</font> </html>");
baseData.setText("<html><font color='black'>" + "基本数据" + "</font> </html>");
userManager.setText("<html><font color='black'>" + "用户管理" + "</font> </html>");
} else if (e.getSource() == userManager) {
initSign();
sign_userManager = 1;
creatUserManagerTab();
userManager
.setText("<html><font color='#336699' style='font-weight:bold'>" + "用户管理" + "</font> </html>");
home.setText("<html><font color='black'>" + "首页" + "</font> </html>");
baseData.setText("<html><font color='black'>" + "基本数据" + "</font> </html>");
purchase_sale_stock.setText("<html><font color='black'>" + "销售信息管理" + "</font> </html>");
} else {
System.out.println("ok");
}
}
public class AddSaleOrderJFrame extends JFrame implements MouseListener, ActionListener {
// 定义全局组件
JPanel backgroundPanel, labelPanel, contentPanel, buttonPanel;
JLabel label_name, label_amount, label_category, label_warehouse;
JComboBox select_name, select_category, select_warehouse;;
JTextField amount;
JButton button_add;
// 商品库存
double goods_stock;
// 获得屏幕的大小
final static int width = Toolkit.getDefaultToolkit().getScreenSize().width;
final static int height = Toolkit.getDefaultToolkit().getScreenSize().height;
// 表格对象
JTable table;
int selectedRow;
SaleOrderManagerJPanel parentPanel;
// 用户对象
User user;
public AddSaleOrderJFrame(User user, SaleOrderManagerJPanel parentPanel) {
this.user = user;
this.parentPanel = parentPanel;
initBackgroundPanel();
this.add(backgroundPanel);
this.setTitle("添加销售单");
buttonPanel.add(button_add);
}
// 鼠标点击事件
@Override
public void mouseClicked(MouseEvent e) {
if (e.getSource() == button_add) {
String amount_String = amount.getText().trim();
String name = ((Item) select_name.getSelectedItem()).getKey();
if ("请选择".equals(name)) {
JOptionPane.showMessageDialog(null, "请选择出库商品");
} else if (amount_String.isEmpty()) {
JOptionPane.showMessageDialog(null, "请输入出库数量");
} else {
double amount_double = Double.valueOf(amount_String);
if (amount_double > goods_stock) {
JOptionPane.showMessageDialog(null, "商品库存不足");
} else {
int result = 0;
String id = UUID.randomUUID().toString().replaceAll("-", "");
String billno = BillNo.getBillNo();
String handlerId = null;
if (user != null) {
handlerId = user.getId();
}
String warehouseId = ((Item) select_warehouse.getSelectedItem()).getKey();
String categoryId = ((Item) select_category.getSelectedItem()).getKey();
Object[] params = { id, billno, handlerId, warehouseId, categoryId, amount_double, name };
StockOrderServiceImpl stockOrderService = new StockOrderServiceImpl();
try {
result = stockOrderService.insertStockOutput(params);
} catch (Exception e1) {
e1.printStackTrace();
}
if (result > 0) {
int tempresult = 0;
GoodsServiceImpl goodsService = new GoodsServiceImpl();
Object[] tempparams = { -amount_double, name };
try {
tempresult = goodsService.updateStockById(tempparams);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (tempresult > 0) {
JOptionPane.showMessageDialog(null, "出库单添加成功");
String id = (String) table.getValueAt(selectedRow, 0);
Object[] params = { amount_double, id };
StockOrderServiceImpl stockOrderService = new StockOrderServiceImpl();
try {
result = stockOrderService.updateStockInputById(params);
} catch (Exception e1) {
e1.printStackTrace();
}
if (result > 0) {
JOptionPane.showMessageDialog(null, "入库单修改成功");
this.setVisible(false);
parentPanel.refreshTablePanel();
}
}
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
button_modify.setForeground(Color.white);
button_modify.setFont(MyFont.Static);
button_modify.addMouseListener(this);
buttonPanel.add(button_modify);
}
// 鼠标点击事件
@Override
public void mouseClicked(MouseEvent e) {
if (e.getSource() == button_modify) {
String amount_String = amount.getText().trim();
if (amount_String.isEmpty()) {
JOptionPane.showMessageDialog(null, "请输入入库数量");
} else {
int result = 0;
double amount_double = Double.valueOf(amount_String);
String id = (String) table.getValueAt(selectedRow, 0);
Object[] params = { amount_double, id };
StockOrderServiceImpl stockOrderService = new StockOrderServiceImpl();
try {
result = stockOrderService.updateStockInputById(params);
} catch (Exception e1) {
e1.printStackTrace();
}
if (result > 0) {
JOptionPane.showMessageDialog(null, "入库单修改成功");
this.setVisible(false);
parentPanel.refreshTablePanel();
}
}
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
public class AddGoodsJFrame extends JFrame implements MouseListener {
// 定义全局组件
JPanel backgroundPanel, labelPanel, contentPanel, buttonPanel;
JLabel label_name, label_price, label_origin, label_stock, label_warehouse, label_category;
JTextField name, price, origin, stock;
JComboBox warehouse, category;
JButton button_add;
// 获得屏幕的大小
final static int width = Toolkit.getDefaultToolkit().getScreenSize().width;
final static int height = Toolkit.getDefaultToolkit().getScreenSize().height;
// 父面板对象
GoodsManagerJPanel parentPanel;
public AddGoodsJFrame(GoodsManagerJPanel parentPanel) {
this.parentPanel = parentPanel;
initBackgroundPanel();
this.add(backgroundPanel);
this.setTitle("添加商品");
this.setSize(640, 360);
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
}
// 初始化背景面板
public void initBackgroundPanel() {
backgroundPanel = new JPanel(new BorderLayout());
this.table = table;
this.selectedRow = selectedRow;
this.parentPanel = parentPanel;
initBackgroundPanel();
this.add(backgroundPanel);
this.setTitle("修改仓库");
this.setSize(320, 180);
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
}
// 初始化背景面板
public void initBackgroundPanel() {
backgroundPanel = new JPanel(new BorderLayout());
initLabelPanel();
initContentPanel();
initButtonPanel();
backgroundPanel.add(labelPanel, "North");
backgroundPanel.add(contentPanel, "Center");
backgroundPanel.add(buttonPanel, "South");
}
// 初始化label面板
public void initLabelPanel() {
labelPanel = new JPanel();
JLabel title = new JLabel("仓库信息");
title.setFont(MyFont.Static);
labelPanel.add(title);
}
// 初始化商品信息面板
public void initContentPanel() {
contentPanel = new JPanel(new GridLayout(1, 2));
double amount_double = Double.valueOf(amount_String);
String id = (String) table.getValueAt(selectedRow, 0);
Object[] params = { amount_double, id };
StockOrderServiceImpl stockOrderService = new StockOrderServiceImpl();
try {
result = stockOrderService.updateStockOutputById(params);
} catch (Exception e1) {
e1.printStackTrace();
}
if (result > 0) {
JOptionPane.showMessageDialog(null, "出库单修改成功");
this.setVisible(false);
parentPanel.refreshTablePanel();
}
}
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
initContentPanel();
}
public void initContentPanel() {
backgroundPanel.removeAll();
contentPanel = new JPanel();
contentPanel.setLayout(new BorderLayout(0, 30));
contentPanel.setOpaque(false);
labelPanel = new JPanel();
labelPanel.setOpaque(false);
textPanel = new JPanel(new GridLayout(3, 2, 0, 20));
textPanel.setOpaque(false);
buttonPanel = new JPanel();
buttonPanel.setOpaque(false);
JLabel label = new JLabel();
label.setText("<html><h2 style='text-align:center;'>个人信息</h2></html>");
label.setFont(MyFont.Static);
JLabel label_username = new JLabel("用户名:", JLabel.CENTER);
label_username.setFont(MyFont.Static);
JLabel label_password = new JLabel("密码:", JLabel.CENTER);
label_password.setFont(MyFont.Static);
JLabel label_identify = new JLabel("身份:", JLabel.CENTER);
label_identify.setFont(MyFont.Static);
if (user != null) {
username.setText(user.getName());
password.setText(user.getPassword());
String identifyString = "";
if (user.getIdentity().equals("1")) {
identifyString = "管理员";
} else if (user.getIdentity().equals("0")) {
identifyString = "普通员工";
}
identify.setText(identifyString);
}
username.setFont(MyFont.Static);
username.setEditable(false);
password.setFont(MyFont.Static);
password.setEditable(false);
identify.setFont(MyFont.Static);
identify.setEditable(false);
button_modify = new JButton("修改信息");
button_modify.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.lightBlue));
button_modify.setForeground(Color.white);
button_modify.setFont(MyFont.Static);
button_modify.addMouseListener(this);
jTabbedPane.addTab("入库单", new StockInputManagerJPanel(user).backgroundPanel);
jTabbedPane.addTab("出库单", new StockOutputManagerJPanel(user).backgroundPanel);
jTabbedPane.addTab("仓库管理", new WarehouseManagerJPanel().backgroundPanel);
centerPanel.add(jTabbedPane, "Center");
}
// 刷新进销存管理面板
public void refreshpurchaseSaleStockTab() {
centerPanel.removeAll();
// 设置tab标题位置
jTabbedPane = new JTabbedPane(JTabbedPane.TOP);
// 设置tab布局
jTabbedPane.setTabLayoutPolicy(JTabbedPane.WRAP_TAB_LAYOUT);
jTabbedPane.setFont(MyFont.Static);
jTabbedPane.addTab("销售单", new SaleOrderManagerJPanel(user).backgroundPanel);
jTabbedPane.addTab("入库单", new StockInputManagerJPanel(user).backgroundPanel);
jTabbedPane.addTab("出库单", new StockOutputManagerJPanel(user).backgroundPanel);
jTabbedPane.addTab("仓库管理", new WarehouseManagerJPanel().backgroundPanel);
centerPanel.add(jTabbedPane, "Center");
}
// 创建用户管理面板
public void creatUserManagerTab() {
centerPanel.removeAll();
// 设置tab标题位置
jTabbedPane = new JTabbedPane(JTabbedPane.TOP);
// 设置tab布局
jTabbedPane.setTabLayoutPolicy(JTabbedPane.WRAP_TAB_LAYOUT);
jTabbedPane.setFont(MyFont.Static);
jTabbedPane.addTab("用户管理", new UserManagerJPanel(user, this).backgroundPanel);
centerPanel.add(jTabbedPane, "Center");
}
// 鼠标点击事件
@Override
public void mouseClicked(MouseEvent e) {
if (e.getSource() == home) {
initSign();
sign_home = 1;
creatHome();
home.setText("<html><font color='#336699' style='font-weight:bold'>" + "首页" + "</font> </html>");
baseData.setText("<html><font color='black'>" + "花的数据" + "</font> </html>");
purchase_sale_stock.setText("<html><font color='black'>" + "销售信息管理" + "</font> </html>");
userManager.setText("<html><font color='black'>" + "用户管理" + "</font> </html>");
JLabel label_name;
JTextField name;
JButton button_modify;
// 获得屏幕的大小
final static int width = Toolkit.getDefaultToolkit().getScreenSize().width;
final static int height = Toolkit.getDefaultToolkit().getScreenSize().height;
// 表格对象
JTable table;
int selectedRow;
WarehouseManagerJPanel parentPanel;
public ModifyWarehouseJFrame(WarehouseManagerJPanel parentPanel, JTable table, int selectedRow) {
this.table = table;
this.selectedRow = selectedRow;
this.parentPanel = parentPanel;
initBackgroundPanel();
this.add(backgroundPanel);
this.setTitle("修改仓库");
this.setSize(320, 180);
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
}
// 初始化背景面板
public void initBackgroundPanel() {
backgroundPanel = new JPanel(new BorderLayout());
initLabelPanel();
initContentPanel();
initButtonPanel();
backgroundPanel.add(labelPanel, "North");
backgroundPanel.add(contentPanel, "Center");
backgroundPanel.add(buttonPanel, "South");
JLabel title = new JLabel("入库信息");
title.setFont(MyFont.Static);
labelPanel.add(title);
}
// 初始化商品信息面板
public void initContentPanel() {
contentPanel = new JPanel(new GridLayout(6, 2));
label_billno = new JLabel("订单号", JLabel.CENTER);
label_name = new JLabel("商品名称", JLabel.CENTER);
label_amount = new JLabel("入库数量", JLabel.CENTER);
label_category = new JLabel("所属分类", JLabel.CENTER);
label_warehouse = new JLabel("所属仓库", JLabel.CENTER);
label_handler = new JLabel("经手人", JLabel.CENTER);
double amount_double = (Double) table.getValueAt(selectedRow, 3);
String amount_String = String.valueOf(amount_double);
billno = new JTextField((String) table.getValueAt(selectedRow, 1));
billno.setEnabled(false);
name = new JTextField((String) table.getValueAt(selectedRow, 2));
name.setEnabled(false);
amount = new JTextField(amount_String);
amount.setEnabled(true);
category = new JTextField((String) table.getValueAt(selectedRow, 4));
category.setEnabled(false);
warehouse = new JTextField((String) table.getValueAt(selectedRow, 5));
warehouse.setEnabled(false);
handler = new JTextField((String) table.getValueAt(selectedRow, 6));
handler.setEnabled(false);
contentPanel.add(label_billno);
contentPanel.add(billno);
contentPanel.add(label_name);
contentPanel.add(name);
contentPanel.add(label_amount);
contentPanel.add(amount);
contentPanel.add(label_category);
contentPanel.add(category);
contentPanel.add(label_warehouse);
contentPanel.add(warehouse);
contentPanel.add(label_handler);
contentPanel.add(handler);
}
// 初始化按钮面板
public void initButtonPanel() {
buttonPanel = new JPanel();
public class ModifyStockInputJFrame extends JFrame implements MouseListener {
// 定义全局组件
JPanel backgroundPanel, labelPanel, contentPanel, buttonPanel;
JLabel label_billno, label_name, label_amount, label_category, label_warehouse, label_handler;
JTextField billno, name, amount, category, warehouse, handler;
JButton button_modify;
// 获得屏幕的大小
final static int width = Toolkit.getDefaultToolkit().getScreenSize().width;
final static int height = Toolkit.getDefaultToolkit().getScreenSize().height;
// 表格对象
JTable table;
int selectedRow;
StockInputManagerJPanel parentPanel;
public ModifyStockInputJFrame(StockInputManagerJPanel parentPanel, JTable table, int selectedRow) {
this.table = table;
this.selectedRow = selectedRow;
this.parentPanel = parentPanel;
initBackgroundPanel();
this.add(backgroundPanel);
backgroundPanel.add(tablePanel, "Center");
}
// 更新数据表格
public void refreshTablePanel() {
backgroundPanel.remove(tablePanel);
Item item_category = (Item) select_category.getSelectedItem();
Item item_warehouse = (Item) select_warehouse.getSelectedItem();
String conditionParams[] = { item_category.getKey(), item_warehouse.getKey() };
String params[] = { "商品id", "名称", "价格", "产地", "所属分类", "所属仓库", "库存", "仓库id", "分类id" };
GoodsServiceImpl goodsService = new GoodsServiceImpl();
Vector<Vector> vector = new Vector<Vector>();
try {
vector = goodsService.selectByCondition(conditionParams);
} catch (Exception e) {
e.printStackTrace();
}
baseTableModule = new BaseTableModule(params, vector);
table = new JTable(baseTableModule);
Tools.setTableStyle(table);
DefaultTableColumnModel dcm = (DefaultTableColumnModel) table.getColumnModel();// 获取列模型
dcm.getColumn(0).setMinWidth(0); // 将第一列的最小宽度、最大宽度都设置为0
dcm.getColumn(0).setMaxWidth(0);
dcm.getColumn(7).setMinWidth(0); // 将第8列的最小宽度、最大宽度都设置为0
dcm.getColumn(7).setMaxWidth(0);
dcm.getColumn(8).setMinWidth(0); // 将第9列的最小宽度、最大宽度都设置为0
dcm.getColumn(8).setMaxWidth(0);
jScrollPane = new JScrollPane(table);
Tools.setJspStyle(jScrollPane);
tablePanel = new JPanel(new BorderLayout());
tablePanel.setOpaque(false);
tablePanel.add(jScrollPane);
backgroundPanel.add(tablePanel, "Center");
backgroundPanel.validate();
}
} else {
int result = 0;
String id = (String) table.getValueAt(selectedRow, 0);
Object[] params = { name_String, id };
WarehouseServiceImpl warehouseService = new WarehouseServiceImpl();
try {
result = warehouseService.updateById(params);
} catch (Exception e1) {
e1.printStackTrace();
}
if (result > 0) {
JOptionPane.showMessageDialog(null, "仓库修改成功");
this.setVisible(false);
parentPanel.refreshTablePanel();
}
}
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
}
}
}
// 鼠标划入事件
@Override
public void mouseEntered(MouseEvent e) {
if (e.getSource() == tool_add) {
tool_add.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
} else if (e.getSource() == tool_modify) {
tool_modify.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
} else if (e.getSource() == tool_delete) {
tool_delete.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void changedUpdate(DocumentEvent e) {
}
// 文本框插入内容事件
@Override
public void insertUpdate(DocumentEvent e) {
refreshTablePanel();
}
// 文本框删除内容事件
amount.setText(amount_String);
select_category.removeAllItems();
select_category.addItem(new Item((String) object[0], (String) object[1]));
select_warehouse.removeAllItems();
select_warehouse.addItem(new Item((String) object[2], (String) object[3]));
}
}
}
}
}