> 文档中心 > 基于Java Swing +Mysql8.0数据库的物资(进销存)管理系统

基于Java Swing +Mysql8.0数据库的物资(进销存)管理系统

一、项目概要:
        基于Java  Swing +Mysql8.0数据库的物资(进销存)管理系统,具备登录功能。以及用户管理、商品进数据管理、进销存管理功能。

二、源码获取:

 有需要可以加QQ:571328502

点击下载

三、界面展示:

登录:

主界面:

商品管理界面:

进销存管理界面:

 四、主要代码:

 1)、登录

package com.bj.frame;  import java.awt.Font;import java.awt.Image; import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.io.File;import java.io.IOException;import java.util.Map; import javax.imageio.ImageIO;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.UIManager; import com.bj.entity.User;import com.bj.factory.ServiceFactory;import com.bj.util.MD5Code;import com.bj.util.MyFont; @SuppressWarnings("serial")public class LoginJFrame extends JFrame implements MouseListener, FocusListener{ // 定义全局组件JTextField id = new JTextField(20);JPasswordField password = new JPasswordField(20);JPanel  backgroundPanel = null;JButton button_minimize, button_close, button_login, button_reset;public LoginJFrame() {try {Image imgae = ImageIO.read(new File("image/logo.png"));this.setIconImage(imgae);} catch (IOException e) {e.printStackTrace();}backgroundPanel = new JPanel();backgroundPanel.setBackground(UIManager.getColor("Button.background"));backgroundPanel.setLayout(null); id.setBounds(62, 102, 195, 42);id.setFont(MyFont.Static);id.setText("账号");id.addFocusListener(this);  password.setBounds(62, 154, 195, 42);password.setFont(MyFont.Static);password.addFocusListener(this);password.setText("密码");password.setEchoChar('\0');   button_login = new JButton("登录");button_login.setBounds(62, 222, 70, 27);button_login.setFont(MyFont.Static);button_login.addMouseListener(this); button_reset = new JButton("重置");button_reset.setBounds(187, 222, 70, 27);button_reset.addMouseListener(this);button_reset.setFont(MyFont.Static); backgroundPanel.add(id);backgroundPanel.add(password);backgroundPanel.add(button_login);backgroundPanel.add(button_reset); getContentPane().add(backgroundPanel);JLabel lblNewLabel = new JLabel("\u7528\u6237\u767B\u9646");lblNewLabel.setFont(new Font("微软雅黑", Font.BOLD, 24));lblNewLabel.setBounds(101, 50, 96, 42);backgroundPanel.add(lblNewLabel);this.setTitle("物资管理系统");this.setSize(310, 380);this.setVisible(true);this.requestFocus();this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);}@Overridepublic void mouseClicked(MouseEvent e) {Map map;if (e.getSource() == button_login) {if ("账号".equals(id.getText())) {JOptionPane.showMessageDialog(null, "账号不能为空");} else if ("密码".equals(new String(password.getPassword()))) {JOptionPane.showMessageDialog(null, "密码不能为空");} else {String un =id.getText();String pw =new MD5Code().getMD5ofStr(new String(password.getPassword()));User user = new User();user.setId(un);user.setPassword(pw);try {map = ServiceFactory.getUserServiceInstance().login(user);boolean flag = (Boolean) map.get("flag");if (flag) { // 账号密码正确,表示登录成功User vo = (User)map.get("user");this.setVisible(false);new IndexJFrame(vo);}else { // 登录失败JOptionPane.showMessageDialog(null, "账号密码有误");}} catch (Exception e2) {e2.printStackTrace();}}} else if (e.getSource() == button_reset) {id.setText("账号");password.setText("密码");password.setEchoChar('\0');} }//聚焦事件@Overridepublic void focusGained(FocusEvent e) {if (e.getSource() == id) {if (id.getText().equals("账号")) {id.setText("");}} else if (e.getSource() == password) {if (new String(password.getPassword()).equals("密码")) {password.setText("");password.setEchoChar('*');}}}// 失焦事件@Overridepublic void focusLost(FocusEvent e) {if (e.getSource() == id) {if (id.getText().equals("")) {id.setText("账号");}} else if (e.getSource() == password) {if (new String(password.getPassword()).equals("")) {password.setText("密码");password.setEchoChar('\0');}}}  @Overridepublic void mouseEntered(MouseEvent e) {// TODO Auto-generated method stub} @Overridepublic void mouseExited(MouseEvent e) {// TODO Auto-generated method stub} @Overridepublic void mousePressed(MouseEvent e) {// TODO Auto-generated method stub} @Overridepublic void mouseReleased(MouseEvent e) {// TODO Auto-generated method stub} }

2)、商品管理

package com.bj.frame; import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener; import java.util.HashSet;import java.util.List;import java.util.Set; import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.ListSelectionModel;import javax.swing.event.DocumentEvent;import javax.swing.event.DocumentListener;import javax.swing.table.DefaultTableCellRenderer; import com.bj.entity.Good;import com.bj.factory.ServiceFactory;/** * 商品管理界面 * */public class GoodManagerJPanel implements ActionListener, MouseListener,DocumentListener{JPanel backgroundPanel, topPanel, toolPanel, searchPanel, tablePanel;JTable table;JScrollPane jScrollPane;JLabel label_category, label_warehouse, tool_add, tool_modify, tool_delete,label_name;JTextField input_name;public GoodManagerJPanel(){backgroundPanel = new JPanel(new BorderLayout()); initTablePanel(); initTopPanel();}// 初始化顶部面板public void initTopPanel() { topPanel = new JPanel(new BorderLayout());//调用工具面板initToolPanel();initSearchPanel();//加入到总背景面板中去backgroundPanel.add(topPanel, "North"); }//初始化工具面板public void initToolPanel() { toolPanel = new JPanel();// 工具图标Icon icon_add = new ImageIcon("image/add.png");tool_add = new JLabel(icon_add);tool_add.setToolTipText("新建商品");tool_add.addMouseListener(this); Icon icon_modify = new ImageIcon("image/modify.png");tool_modify = new JLabel(icon_modify);tool_modify.setToolTipText("修改商品");tool_modify.addMouseListener(this); Icon icon_delete = new ImageIcon("image/delete.png");tool_delete = new JLabel(icon_delete);tool_delete.setToolTipText("删除商品");tool_delete.addMouseListener(this); toolPanel.add(tool_add);toolPanel.add(tool_modify);toolPanel.add(tool_delete);//加入到顶部面板中去topPanel.add(toolPanel, "West"); }//初始化数据表格列表public void initTablePanel() {List Goods = null ;try {Goods = ServiceFactory.getGoodServiceInstance().list();} catch (Exception e) {e.printStackTrace();}//创建一个TableModelGoodTableModel htm= new GoodTableModel(Goods);//根据 TableModel来创建 Table table = new JTable(htm);  //设置其居中 DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();//单元格渲染器 tcr.setHorizontalAlignment(JLabel.CENTER);//居中显示   table.setDefaultRenderer(Object.class, tcr);//设置渲染器   table.setRowHeight(80);  // 设置选择模式为单行选择 table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 选中第一行 (基本0) //table.getSelectionModel().setSelectionInterval(0, 0);  jScrollPane = new JScrollPane(table);  tablePanel = new JPanel(new BorderLayout());  tablePanel.setOpaque(false); tablePanel.add(jScrollPane);backgroundPanel.add(tablePanel, "Center"); }public void refreshTablePanel() {backgroundPanel.remove(tablePanel);String name = input_name.getText(); List Goods = null ;try {Goods = ServiceFactory.getGoodServiceInstance().listByColumn("name", name);} catch (Exception e) {e.printStackTrace();}//创建一个TableModelGoodTableModel htm= new GoodTableModel(Goods); //根据 TableModel来创建 Table table = new JTable(htm); //设置其居中 DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();//单元格渲染器 tcr.setHorizontalAlignment(JLabel.CENTER);//居中显示   table.setDefaultRenderer(Object.class, tcr);//设置渲染器   table.setRowHeight(80);  jScrollPane = new JScrollPane(table);  tablePanel = new JPanel(new BorderLayout());  tablePanel.setOpaque(false); tablePanel.add(jScrollPane);backgroundPanel.add(tablePanel, "Center");}// 初始化搜素条件面板public void initSearchPanel() {searchPanel = new JPanel();// 商品模糊名称输入框input_name = new JTextField(10);input_name.getDocument().addDocumentListener(this);// 标签label_name = new JLabel("商品名称");searchPanel.add(label_name);searchPanel.add(input_name);topPanel.add(searchPanel, "East");}//鼠标单击事件@Overridepublic void mouseClicked(MouseEvent e) {if (e.getSource() == tool_add) {//添加商品new AddGoodsJFrame(this);}else if(e.getSource() == tool_delete) {//删除商品int selectedRow= table.getSelectedRow();if (selectedRow == -1) {JOptionPane.showMessageDialog(null, "请选择商品");} else {int id = (int)table.getValueAt(selectedRow, 2);Set ids = new HashSet();ids.add(id);int result = JOptionPane.showConfirmDialog(null, "是否确定删除?", "用户提示", JOptionPane.YES_NO_OPTION);if (result == 0) {try {if (ServiceFactory.getGoodServiceInstance().delete(ids)) {JOptionPane.showMessageDialog(null, "商品删除成功!");refreshTablePanel();}else {JOptionPane.showMessageDialog(null, "商品删除失败!");refreshTablePanel();}} catch (Exception e1) {e1.printStackTrace();}}}}else if (e.getSource() == tool_modify) {//修改商品int selectedRow= table.getSelectedRow();if (selectedRow == -1) {JOptionPane.showMessageDialog(null, "请选择商品");}  else {System.out.println(selectedRow);new ModifyGoodsJFrame(this, table, selectedRow);}}} @Overridepublic void mouseEntered(MouseEvent arg0) {  } @Overridepublic void mouseExited(MouseEvent arg0) {  } @Overridepublic void mousePressed(MouseEvent arg0) {  } @Overridepublic void mouseReleased(MouseEvent arg0) {} @Overridepublic void actionPerformed(ActionEvent arg0) {} @Overridepublic void changedUpdate(DocumentEvent arg0) {// TODO Auto-generated method stub}// 文本框插入内容事件@Overridepublic void insertUpdate(DocumentEvent e) {refreshTablePanel();} // 文本框删除内容事件@Overridepublic void removeUpdate(DocumentEvent e) {refreshTablePanel();} }

3)、进销存管理

package com.bj.frame; import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set; import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.ListSelectionModel;import javax.swing.event.DocumentEvent;import javax.swing.event.DocumentListener;import javax.swing.table.DefaultTableCellRenderer; import com.bj.entity.Order;import com.bj.entity.User;import com.bj.factory.ServiceFactory; public class OrderManagerJPanel implements ActionListener, MouseListener, DocumentListener {JPanel backgroundPanel, topPanel, toolPanel, searchByGoodPanel, seacrchPanel,tablePanel;JTable table;JScrollPane jScrollPane;JLabel tool_add, tool_modify, tool_delete,label_name,label_date,tool_confirm,tool_refute;JTextField input_name,input_date;// 用户对象User user;public OrderManagerJPanel(User user) {this.user = user;backgroundPanel = new JPanel(new BorderLayout());initTopPanel();initTablePanel();}// 初始化顶部面板public void initTopPanel() {topPanel = new JPanel(new BorderLayout()); initToolPanel();initSearchPanel(); backgroundPanel.add(topPanel, "North");}// 初始化工具面板public void initToolPanel() {toolPanel = new JPanel();// 工具图标Icon icon_add = new ImageIcon("image/add.png");tool_add = new JLabel(icon_add);tool_add.setToolTipText("新建订单");tool_add.addMouseListener(this); Icon icon_modify = new ImageIcon("image/modify.png");tool_modify = new JLabel(icon_modify);tool_modify.setToolTipText("修改订单");tool_modify.addMouseListener(this); Icon icon_delete = new ImageIcon("image/delete.png");tool_delete = new JLabel(icon_delete);tool_delete.setToolTipText("删除订单");tool_delete.addMouseListener(this);Icon icon_confirm = new ImageIcon("image/confirm.png");tool_confirm = new JLabel(icon_confirm);tool_confirm.setToolTipText("批准订单");tool_confirm.addMouseListener(this);Icon icon_refute = new ImageIcon("image/refute.png");tool_refute = new JLabel(icon_refute);tool_refute.setToolTipText("拒接订单");tool_refute.addMouseListener(this);toolPanel.add(tool_add);toolPanel.add(tool_modify);toolPanel.add(tool_delete);if( "1" .equals(user.getIdentity())) {toolPanel.add(tool_confirm);toolPanel.add(tool_refute);} topPanel.add(toolPanel, "West");}// 初始化搜素条件面板public void initSearchPanel() {searchByGoodPanel = new JPanel();// 商品模糊名称输入框input_name = new JTextField(10);input_name.getDocument().addDocumentListener(this);input_date = new JTextField(10);input_date.getDocument().addDocumentListener(this);// 标签label_name = new JLabel("商品ID");label_date = new JLabel("操作时间");searchByGoodPanel.add(label_name);searchByGoodPanel.add(input_name);searchByGoodPanel.add(label_date);searchByGoodPanel.add(input_date);topPanel.add(searchByGoodPanel, "East");} // 初始化数据表格面板public void initTablePanel() {List Order = null ;try {Order = ServiceFactory.getOrderServiceInstance().list();} catch (Exception e) {e.printStackTrace();}OrderTableModel otm = new OrderTableModel(Order); table = new JTable(otm); //设置其居中 DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();//单元格渲染器 tcr.setHorizontalAlignment(JLabel.CENTER);//居中显示   table.setDefaultRenderer(Object.class, tcr);//设置渲染器    // 设置选择模式为单行选择 table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 选中第一行 (基本0) //table.getSelectionModel().setSelectionInterval(0, 0); table.setRowHeight(80); jScrollPane = new JScrollPane(table); tablePanel = new JPanel(new BorderLayout());tablePanel.setOpaque(false); tablePanel.add(jScrollPane); backgroundPanel.add(tablePanel, "Center");}// 更新数据表格public void refreshTablePanel() {backgroundPanel.remove(tablePanel);String name = input_name.getText();String date = input_date.getText();List Order = null ;Map map = new HashMap() ;map.put("orderId", "");map.put("ordertime", date);map.put("goodid", name);map.put("company", "");map.put("number", "");map.put("operator", "");map.put("state", "");map.put("sign", "");try {Order = ServiceFactory.getOrderServiceInstance().listInPutByColumns(map);} catch (Exception e) {e.printStackTrace();}OrderTableModel otm = new OrderTableModel(Order); table = new JTable(otm); //设置其居中 DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();//单元格渲染器 tcr.setHorizontalAlignment(JLabel.CENTER);//居中显示   table.setDefaultRenderer(Object.class, tcr);//设置渲染器    // 设置选择模式为单行选择 table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 选中第一行 (基本0) //table.getSelectionModel().setSelectionInterval(0, 0); table.setRowHeight(80); jScrollPane = new JScrollPane(table); tablePanel = new JPanel(new BorderLayout());tablePanel.setOpaque(false); tablePanel.add(jScrollPane); backgroundPanel.add(tablePanel, "Center");} @Overridepublic void mouseClicked(MouseEvent e) {int selectedRow= table.getSelectedRow();if (e.getSource() == tool_add) {new AddOrderJFrame(user, this);}if (e.getSource() == tool_modify) {}if (e.getSource() == tool_delete) {if (selectedRow == -1) {JOptionPane.showMessageDialog(null, "请选择订单");} else {int id = (int)table.getValueAt(selectedRow, 0);Set ids = new HashSet();ids.add(id);int result = JOptionPane.showConfirmDialog(null, "是否确定删除?", "用户提示", JOptionPane.YES_NO_OPTION);if (result == 0) {try {if (ServiceFactory.getOrderServiceInstance().delete(ids)) {JOptionPane.showMessageDialog(null, "订单删除成功!");refreshTablePanel();}else {JOptionPane.showMessageDialog(null, "订单删除失败!");refreshTablePanel();}} catch (Exception e1) {e1.printStackTrace();}}}}if (e.getSource() == tool_confirm) {if (selectedRow == -1) {JOptionPane.showMessageDialog(null, "请选择订单");} else {int result = JOptionPane.showConfirmDialog(null, "确定通过审核?", "用户提示", JOptionPane.YES_NO_OPTION);if (result == 0) {int id = (int)table.getValueAt(selectedRow, 0);String sign = (String)table.getValueAt(selectedRow, 7);if("未审核".equals(sign)) {try {if(ServiceFactory.getOrderServiceInstance().comfirm(id)) {JOptionPane.showMessageDialog(null, "操作成功!");refreshTablePanel();}else {JOptionPane.showMessageDialog(null, "操作失败,请检查是否库存存在问题!");refreshTablePanel();}}catch (Exception e1) {e1.printStackTrace();}}else {JOptionPane.showMessageDialog(null, "请选择正确的订单!");refreshTablePanel();}}}}if (e.getSource() == tool_refute) {if (selectedRow == -1) {JOptionPane.showMessageDialog(null, "请选择订单");} else {int result = JOptionPane.showConfirmDialog(null, "确定拒接该订单?", "用户提示", JOptionPane.YES_NO_OPTION);if (result == 0) {int id = (int)table.getValueAt(selectedRow, 0);String sign = (String)table.getValueAt(selectedRow, 7);if("未审核".equals(sign)) {try {if(ServiceFactory.getOrderServiceInstance().refute(id)) {JOptionPane.showMessageDialog(null, "操作成功!");refreshTablePanel();}else {JOptionPane.showMessageDialog(null, "操作失败!");refreshTablePanel();}}catch (Exception e1) {e1.printStackTrace();}}else {JOptionPane.showMessageDialog(null, "请选择正确的订单!");refreshTablePanel();}}}}}@Overridepublic void changedUpdate(DocumentEvent arg0) {// TODO Auto-generated method stub}  @Overridepublic void insertUpdate(DocumentEvent arg0) {refreshTablePanel();}  @Overridepublic void removeUpdate(DocumentEvent arg0) {refreshTablePanel();}    @Overridepublic void mouseEntered(MouseEvent arg0) {// TODO Auto-generated method stub}  @Overridepublic void mouseExited(MouseEvent arg0) {// TODO Auto-generated method stub}  @Overridepublic void mousePressed(MouseEvent arg0) {// TODO Auto-generated method stub}  @Overridepublic void mouseReleased(MouseEvent arg0) {// TODO Auto-generated method stub}  @Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stub}}

4)、数据库连接

五、其它项目:

基于Java Swing 的通讯录管理系统

基于Java Swing记事本管理系统

基于java Swing 宿舍管理系统

基于java Swing 图书管理系统

基于Java Swing 成绩管理系统

六、心灵寄语:
想要赢,就一定不能怕输。不怕输结果未必能赢,但是怕输,结果则是一定输。

PS:如有侵权,请联系删除。

神片云