JAVA结课作品——超市管理系统
MayMarch 2024-06-16 08:05:02 阅读 87
项目描述:一个简单的超市管理系统,能够实现用户登入和注册功能,共分为前台和后台两个主要界面,普通用户界面操作权限收到限制,只能对商品和销售记录进行简单查询操作,后台中可以进行商品的删除、修改、查询,可以查看用户信息,可以修改用户信息。具体的代码如下:
TooLUtil工具类:在该类中定义一些方法,用于判断字符串是否为空、获取当前时间、对时间进行格式转化,同时获取当前用户登入,具体代码如下所示:
package cn.qinlimei.goodmanager.utils;import javax.xml.crypto.Data;import java.text.Format;import java.text.SimpleDateFormat;import java.util.Date;/** * 在该类中定义一些方法,用于判断字符串是否为空、获取当前时间、对时间进行格式转化 * 获取当前用户登入 */public class ToolUtil { //判断字符串是否为空 public static boolean isEmpty(String str){ if(str!=null&& !"".equals(str.trim())){//字符串两端的空格去掉 return false;//不是空的返回false } return true;//空的话就返回真 } //获取当前系统时间所对应的毫秒值 public static Long getTime(){ long time=System.currentTimeMillis(); return time; } //将一个long类型的毫秒值转换成指定格式的日期字符串 public static String getDataByTime(long time){ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); Date date=new Date(time); String value=format.format(date); return value; }}
LoginFrm类:实现用户登入的类
package cn.qinlimei.goodmanager.jframe;import cn.qinlimei.goodmanager.dao.UserDao;import cn.qinlimei.goodmanager.model.User;import cn.qinlimei.goodmanager.utils.Dbutil;import cn.qinlimei.goodmanager.utils.ToolUtil;import cn.qinlimei.goodmanager.model.Goods;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;//用户实现登入的界面public class LoginFrm extends JFrame { public static User currentUser;//当登入成功后,使用该变量存储登入的用户 private JFrame jf;//登入界面的窗体组件 private JTextField userNameText;//输入用户名的文本框 private JTextField passwordText;//输入密码的文本框 private JComboBox comboBox;//用户角色的下拉选择框 //创建一个UserDao对象 private UserDao userDao=new UserDao(); public LoginFrm(){ //初始化窗体组件 jf=new JFrame("超市管理系统"); jf.getContentPane().setFont(new Font("幼圆",Font.BOLD,14)); jf.setBounds(600,250,500,467); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.getContentPane().setLayout(null); //初始化展示用户名三个字所需要的标签 JLabel label; label=new JLabel("用户名:"); label.setForeground(Color.BLACK); label.setFont(new Font("幼圆",Font.BOLD,16)); label.setBounds(110,80,75,40); jf.getContentPane().add(label); //初始化初始化用户名文本框组件 userNameText=new JTextField(); userNameText.setFont(new Font("幼圆",Font.BOLD,14)); userNameText.setForeground(Color.BLACK); userNameText.setBounds(198,83,164,30); jf.getContentPane().add(userNameText); userNameText.setColumns(10); //初始化展示密码两个字所需要的标签 JLabel label_1; label_1=new JLabel("密码:"); label_1.setForeground(Color.BLACK); label_1.setFont(new Font("幼圆",Font.BOLD,16)); label_1.setBounds(120,150,65,40); jf.getContentPane().add(label_1); //初始化密码输入的文本框组件 passwordText=new JTextField(); passwordText.setFont(new Font("幼圆",Font.BOLD,14)); passwordText.setForeground(Color.BLACK); passwordText.setColumns(10); passwordText.setBounds(198,152,164,30); jf.getContentPane().add(passwordText); //初始化展示权限两个字的标签 JLabel label_2; label_2=new JLabel("权限"); label_2.setForeground(Color.BLACK); label_2.setFont(new Font("幼圆",Font.BOLD,15)); label_2.setBounds(144,250,45,29); jf.getContentPane().add(label_2); //初始化角色选择的下拉框组件 comboBox=new JComboBox(); comboBox.setBounds(199,254,127,25); comboBox.addItem("普通成员"); comboBox.addItem("管理员"); jf.getContentPane().add(comboBox); //初始化登入按钮 JButton button=new JButton("登入"); //给登入按钮添加一个动作监听器 button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //编写登入的业务逻辑 checkLogih(); } }); button.setBounds(153,320,65,29); jf.getContentPane().add(button); //初始化注册按钮 JButton button_1=new JButton("注册"); //给注册按钮添加一个动作监听器 button_1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //编写注册的业务逻辑 regUser();//去注册界面的方法 } }); button_1.setBounds(263,320,65,29); jf.getContentPane().add(button_1); //初始化展示 用户登入标题所需要的标签 JLabel lbNewLable_1; lbNewLable_1=new JLabel("用户登入"); lbNewLable_1.setFont(new Font("幼圆",Font.BOLD,25)); lbNewLable_1.setBounds(200,10,122,51); jf.getContentPane().add(lbNewLable_1); //让图形界面显示且不可改变大小 jf.setVisible(true); jf.setResizable(false); } //去注册页面所对应的方法 public void regUser(){ //把当前的jf页面隐藏掉 jf.setVisible(false); new RegFram(); } //完成用户登入的业务逻辑 public void checkLogih(){ //获取用户输入的用户名和密码 String userName= userNameText.getText(); String password= passwordText.getText(); int index=comboBox.getSelectedIndex(); if(ToolUtil.isEmpty(userName)||ToolUtil.isEmpty(password)){ JOptionPane.showMessageDialog(null,"用户名和密码不能为空!"); return; } //把数据封装到User中 User user=new User(); user.setUername(userName); user.setUerpassword(password); if(index==0){ user.setRole(1); }else{ user.setRole(2); } //获取一个链接对象 Connection connection=null; try { connection= Dbutil.getConnection(); User login=userDao.login(connection,user); if(login==null){ JOptionPane.showMessageDialog(null,"登入失败"); }else{ currentUser =login;//记录当前登入的用户 if(index==0){ //等于0说明选择的是普通用户 jf.dispose(); new UserMenuFrm(); //普通用户的登入界面 }else{ jf.dispose(); new AdminMenuFrm(); //管理员的登入界面 } } } catch (Exception e) { e.printStackTrace(); }finally { try { Dbutil.closeConnection(connection); } catch (Exception e) { e.printStackTrace(); } } } public static void main(String[] args) { LoginFrm loginFrm=new LoginFrm(); }}
AdminMenuFrm类:实现部门管理的类
package cn.qinlimei.goodmanager.jframe;import cn.qinlimei.goodmanager.dao.DepartmentDao;import cn.qinlimei.goodmanager.model.Department;import cn.qinlimei.goodmanager.utils.Dbutil;import cn.qinlimei.goodmanager.utils.ToolUtil;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.Connection;public class AdminMenuFrm extends JFrame { private JFrame jf; private JTextField textField; private JButton btnNewButton; private JTextArea textArea; private DepartmentDao departmentDao=new DepartmentDao(); public AdminMenuFrm(){ //初始化界面所需要的窗体组件 jf=new JFrame("管理员"); jf.setBounds(400,100,600,429); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.getContentPane().setLayout(null); //初始化展示部门类别四个字所对应的标签 JLabel label_1=new JLabel(); label_1.setFont(new Font("幼圆",Font.BOLD,14)); label_1.setText("部门名称:"); label_1.setBounds(112,38,75,26); jf.getContentPane().add(label_1); //初始化输入部门名称的文本框 textField=new JTextField(); textField.setBounds(197,38,241,26); jf.getContentPane().add(textField); //初始化展示部门编号所对应的标签 JLabel label=new JLabel(); label.setFont(new Font("幼圆",Font.BOLD,14)); label.setText("部门编号:"); label.setBounds(112,120,75,26); jf.getContentPane().add(label); //初始化输入部门编号所需要的文本框 textArea=new JTextArea(); textArea.setColumns(10); textArea.setRows(5); textArea.setBackground(Color.WHITE); textArea.setBounds(197,114,241,25); jf.getContentPane().add(textArea); //初始化 添加 按钮 btnNewButton=new JButton("添加"); btnNewButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) {//添加按钮的业务逻辑 //获取部门名称和部门编号 String typeName= textField.getText(); int typeRemrke= Integer.parseInt(textArea.getText()); //判断是否为空 if(ToolUtil.isEmpty(typeName)||ToolUtil.isEmpty(String.valueOf(typeRemrke))){ JOptionPane.showMessageDialog(null,"请输入相关信息"); return; } //把数据封装到部门对象中 Department department=new Department(); department.setDepartmentname(typeName); department.setDepartmentid(typeRemrke); //获取链接对象 Connection connection=null; try { //把数据保存在数据库中 connection=Dbutil.getConnection(); //调用部门管理中的方法进行信息保存 int i=departmentDao.add(connection,department); if(i==1){ JOptionPane.showMessageDialog(null,"添加成功"); reset(); }else if(i==2){ JOptionPane.showMessageDialog(null,"添加失败,已存在!"); }else{ JOptionPane.showMessageDialog(null,"添加失败!"); } } catch (Exception ex) { ex.printStackTrace(); }finally { if(connection !=null){ try { Dbutil.closeConnection(connection); } catch (Exception ex) { ex.printStackTrace(); } } } } }); btnNewButton.setFont(new Font("幼圆",Font.BOLD,14)); btnNewButton.setBounds(182,281,80,26); jf.getContentPane().add(btnNewButton); //创建重置按钮 JButton button=new JButton("重置"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { reset(); } }); button.setFont(new Font("幼圆",Font.BOLD,14)); button.setBounds(360,281,80,26); jf.getContentPane().add(button); //创建菜单栏组件 JMenuBar menuBar=new JMenuBar(); jf.setJMenuBar(menuBar); //添加部门管理菜单 JMenu mnNewMeun=new JMenu("部门管理"); menuBar.add(mnNewMeun); //添加部门 选项 JMenuItem mntmNewMenuItem=new JMenuItem("部门添加"); mnNewMeun.add(mntmNewMenuItem); //添加部门修改选项 JMenuItem mntmNewMenuItem_1=new JMenuItem("部门修改"); mntmNewMenuItem_1.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new AddminTypeEdit();//部门修改的界面 } }); mnNewMeun.add(mntmNewMenuItem_1); //添加商品管理菜单 JMenu mnNewMeun_2=new JMenu("商品管理"); menuBar.add(mnNewMeun_2); //添加商品添加选项 JMenuItem mntmNewMenuItem_2=new JMenuItem("添加商品"); mntmNewMenuItem_2.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new AdmingoodAdd(); } }); mnNewMeun_2.add(mntmNewMenuItem_2); //添加商品修改 JMenuItem mntmNewMenuItem_3=new JMenuItem("商品修改"); mntmNewMenuItem_3.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new AddmingoodEdit(); } }); mnNewMeun_2.add(mntmNewMenuItem_3); //添加用户管理菜单 JMenu menu1=new JMenu("员工管理"); menuBar.add(menu1); //添加用户选项 JMenuItem mntmNewMenuItem_4=new JMenuItem("添加员工"); mntmNewMenuItem_4.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new AddminUserinfo(); } }); menu1.add(mntmNewMenuItem_4); //添加流水信息选项 JMenuItem mntmNewMenuItem_5=new JMenuItem("流水信息"); mntmNewMenuItem_5.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new Addminflowinfo(); } }); menu1.add(mntmNewMenuItem_5); //添加退出系统菜单 JMenu mnNewMeun_1=new JMenu("退出系统"); mnNewMeun_1.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { JOptionPane.showMessageDialog(null,"欢迎下次使用!"); jf.dispose(); } }); menuBar.add(mnNewMeun_1); jf.setVisible(true); jf.setResizable(false); } public void reset(){ this.textField.setText(""); this.textArea.setText(""); } public static void main(String[] args) { new AdminMenuFrm(); }}
AdmingoodAdd类:实现商品管理的类:
package cn.qinlimei.goodmanager.jframe;import cn.qinlimei.goodmanager.dao.GoodsDao;import cn.qinlimei.goodmanager.model.Goods;import cn.qinlimei.goodmanager.utils.Dbutil;import cn.qinlimei.goodmanager.utils.ToolUtil;import javax.swing.*;import javax.swing.border.TitledBorder;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.math.BigDecimal;import java.sql.Connection;public class AdmingoodAdd extends Exception { private JFrame jf;//展示添加图书组件的窗体组件 private JTextField textField_1;//输入商品名所需要的文本框 private JTextField textField_2;//输入编号文本框 private JTextField textField_3;//输入条形码文本框 private JTextField textField_4;//输入产地文本框 private JTextField textField_5;//输入产商文本框 private JTextField textField_6;//输入规文本框 private JTextField textField_7;//输入文本框 private JTextField textField_8;//输入售价文本框 private JTextField textField_9;//输入库存文本框 private JTextField textField_10;//库存下限文本框 //创建商品Dao对象 private GoodsDao goodsDao=new GoodsDao(); public AdmingoodAdd() { //初始化商品添加窗口组件 jf = new JFrame("管理员界面"); jf.setBounds(400, 100, 611, 450); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.getContentPane().setLayout(null); //创建一个添加商品信息所对应的面板组件 JPanel panel = new JPanel(); panel.setBorder(new TitledBorder(null, "书籍添加", TitledBorder.LEADING, TitledBorder.TOP, null, Color.black)); panel.setBounds(23, 21, 554, 350); jf.getContentPane().add(panel); panel.setLayout(null); //创建展示商品名所需要的标签 JLabel lblNewLabel=new JLabel("名称:"); lblNewLabel.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel.setBounds(55,31,45,27); panel.add(lblNewLabel); //初始化输入商品名所需的文本框 textField_1=new JTextField(); textField_1.setBounds(101,31,129,27); panel.add(textField_1); textField_1.setColumns(10); //创建展示编号所需要的标签 JLabel lblNewLabel_2=new JLabel("编号:"); lblNewLabel_2.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_2.setBounds(294,31,45,27); panel.add(lblNewLabel_2); //初始化编号文本框 textField_2=new JTextField(); textField_2.setBounds(340,31,128,27); panel.add(textField_2); textField_2.setColumns(10); //创建展示条形码所需要的标签 JLabel lblNewLabel_3=new JLabel("条形码:"); lblNewLabel_3.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_3.setBounds(43,79,60,27); panel.add(lblNewLabel_3); //初始化输入条形码文本框 textField_3=new JTextField(); textField_3.setBounds(101,79,129,27); panel.add(textField_3); textField_3.setColumns(10); //创建展示产地的标签 JLabel lblNewLabel_4=new JLabel("产地:"); lblNewLabel_4.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_4.setBounds(294,79,60,27); panel.add(lblNewLabel_4); //初始化产地文本 textField_4=new JTextField(); textField_4.setBounds(340,79,129,27); panel.add(textField_4); textField_4.setColumns(10); //产商标签 JLabel lblNewLabel_5=new JLabel("产商:"); lblNewLabel_5.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_5.setBounds(55,127,60,27); panel.add(lblNewLabel_5); //初始化产商文本 textField_5=new JTextField(); textField_5.setBounds(101,127,129,27); panel.add(textField_5); textField_5.setColumns(10); //规格标签 JLabel lblNewLabel_6=new JLabel("规格:"); lblNewLabel_6.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_6.setBounds(294,127,60,27); panel.add(lblNewLabel_6); //初始化规格文本 textField_6=new JTextField(); textField_6.setBounds(340,127,129,27); panel.add(textField_6); textField_6.setColumns(10); //进价标签 JLabel lblNewLabel_7=new JLabel("进价:"); lblNewLabel_7.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_7.setBounds(45,175,60,27); panel.add(lblNewLabel_7); //进价文本 textField_7=new JTextField(); textField_7.setBounds(101,175,129,27); panel.add(textField_7); textField_7.setColumns(10); //售价标签 JLabel lblNewLabel_8=new JLabel("售价:"); lblNewLabel_8.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_8.setBounds(294,175,45,27); panel.add(lblNewLabel_8); //售价文本 textField_8=new JTextField(); textField_8.setBounds(340,175,129,27); panel.add(textField_8); textField_8.setColumns(10); //库存标签 JLabel lblNewLabel_9=new JLabel("库存:"); lblNewLabel_9.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_9.setBounds(45,223,45,27); panel.add(lblNewLabel_9); //库存文本 textField_9=new JTextField(); textField_9.setBounds(101,223,129,27); panel.add(textField_9); textField_9.setColumns(10); //库存下限标签 JLabel lblNewLabel_10=new JLabel("下限:"); lblNewLabel_10.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_10.setBounds(294,223,45,27); panel.add(lblNewLabel_10); //库存下限文本 textField_10=new JTextField(); textField_10.setBounds(340,223,129,27); panel.add(textField_10); textField_10.setColumns(10); //查询数据库获取类别数据 //创建添加按钮 JButton btnNewButton=new JButton("添加"); btnNewButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //添加商品的业务逻辑代码 //从文本框中获取用户输入的数据 String goodname=textField_1.getText(); String goodid=textField_2.getText(); String goodtxm=textField_3.getText(); String goodcd=textField_4.getText(); String goodcs=textField_5.getText(); String goodgg=textField_6.getText(); String goodjj=textField_7.getText(); String goodsj=textField_8.getText(); String goodkc=textField_9.getText(); String goodxx=textField_10.getText(); //对数据进行校验 if(ToolUtil.isEmpty(goodname)|| ToolUtil.isEmpty(goodid)|| ToolUtil.isEmpty(goodtxm)|| ToolUtil.isEmpty(goodcd)|| ToolUtil.isEmpty(goodcs)|| ToolUtil.isEmpty(goodgg)|| ToolUtil.isEmpty(goodjj)|| ToolUtil.isEmpty(goodsj)|| ToolUtil.isEmpty(goodkc)|| ToolUtil.isEmpty(goodxx)){ JOptionPane.showMessageDialog(null,"请输入相关内容!"); return; } //因为从文本框中得到的是字符串类型的数据,无法将整形等数据赋给商品对象中的整形等数据,因此要进行数据解析 Integer bianhao;//编号 Double jinjia;//进价 Double shoujia;//售价 Integer kucun;//库存 Integer kcxiaxian;//库存下限 try { bianhao=Integer.parseInt(goodid); jinjia= new BigDecimal(goodjj).setScale(2).doubleValue();//保留两位小数点 shoujia= new BigDecimal(goodsj).setScale(2).doubleValue(); kucun=Integer.parseInt(goodkc); kcxiaxian=Integer.parseInt(goodxx); }catch (Exception e1){ JOptionPane.showMessageDialog(null,"参数错误!"); return; } //创建一个商品对象用来封装参数 Goods goods=new Goods(); goods.setGoodtxm(goodtxm); goods.setGoodid(bianhao); goods.setGoodname(goodname); goods.setGoodcd(goodcd); goods.setGoodgg(goodgg); goods.setGoodcj(goodcs); goods.setGoodj(jinjia); goods.setGoodsj(shoujia); goods.setGoodxx(kcxiaxian); goods.setGoodkc(kucun); //获取链接对象进行数据保存操作 Connection connection=null; try { connection=Dbutil.getConnection(); //调用商品dao中的方法完成数据保存 int i=goodsDao.add(connection,goods);//会返回一个整形 if(i==1){ JOptionPane.showMessageDialog(null,"添加成功!"); reset();//进行清空操作 }else { JOptionPane.showMessageDialog(null,"添加失败!"); } } catch (Exception ex) { ex.printStackTrace(); }finally { if(connection!=null){ try { Dbutil.closeConnection(connection); } catch (Exception ex) { ex.printStackTrace(); } } } } }); btnNewButton.setFont(new Font("幼圆",Font.BOLD,14)); btnNewButton.setBounds(124,280,77,27); panel.add(btnNewButton); //创建重置按钮 JButton button=new JButton("重置"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { reset(); } }); button.setFont(new Font("幼圆",Font.BOLD,14)); button.setBounds(329,280,77,27); panel.add(button); //创建菜单栏组件 JMenuBar menuBar=new JMenuBar(); jf.setJMenuBar(menuBar); //添加部门管理菜单 JMenu mnNewMenu=new JMenu("部门管理"); menuBar.add(mnNewMenu); //添加 添加部门选项 JMenuItem mntmNewMenuItem=new JMenuItem("部门添加"); mntmNewMenuItem.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new AdminMenuFrm(); } }); mnNewMenu.add(mntmNewMenuItem); //添加 部门修改选项 JMenuItem mntmNewMenuItem_1=new JMenuItem("部门修改"); mntmNewMenuItem_1.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new AddminTypeEdit(); } }); mnNewMenu.add(mntmNewMenuItem_1); //商品管理菜单 JMenu mnNewMenu_2=new JMenu("商品管理"); menuBar.add(mnNewMenu_2); //商品添加 选项 JMenuItem mntmNewMenuItem_2=new JMenuItem("商品添加"); mnNewMenu_2.add(mntmNewMenuItem_2); //商品修改 选项 JMenuItem mntmNewMenuItem_3=new JMenuItem("商品修改"); mntmNewMenuItem_3.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new AddmingoodEdit();//商品修改的界面 } }); mnNewMenu_2.add(mntmNewMenuItem_3); //员工管理菜单 JMenu menu1=new JMenu("员工管理"); menuBar.add(menu1); //添加员工 选项 JMenuItem mntnNewMenuItem_4=new JMenuItem("员工信息"); mntnNewMenuItem_4.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new AddminUserinfo();//进入员工管理的界面 } }); menu1.add(mntnNewMenuItem_4); //添加流水信息菜单选项 JMenuItem mntnNewMenuItem_5=new JMenuItem("流水信息"); mntnNewMenuItem_5.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new Addminflowinfo(); } }); menu1.add(mntnNewMenuItem_5); //添加退出系统菜单 JMenu mnNewMenu_1=new JMenu("退出系统"); mnNewMenu_1.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { JOptionPane.showMessageDialog(null,"欢迎下次使用!"); jf.dispose(); } }); menuBar.add(mnNewMenu_1); //展示jf,并且不可改变大小 jf.setVisible(true); jf.setResizable(false); } public void reset(){ //清空所有文本框中的内容 textField_1.setText(""); textField_2.setText(""); textField_3.setText(""); textField_4.setText(""); textField_5.setText(""); textField_6.setText(""); textField_7.setText(""); textField_8.setText(""); textField_9.setText(""); textField_10.setText(""); } public static void main(String[] args) { new AdmingoodAdd(); }}
AdminUserinfo类:实现员工管理的类:
package cn.qinlimei.goodmanager.jframe;import cn.qinlimei.goodmanager.dao.StaffDao;import cn.qinlimei.goodmanager.dao.UserDao;import cn.qinlimei.goodmanager.model.Goods;import cn.qinlimei.goodmanager.model.UserStaff;import cn.qinlimei.goodmanager.utils.Dbutil;import cn.qinlimei.goodmanager.utils.ToolUtil;import javax.swing.*;import javax.swing.border.TitledBorder;import javax.swing.table.DefaultTableModel;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.sql.Connection;import java.sql.ResultSet;import java.util.Date;import java.util.Vector;import static cn.qinlimei.goodmanager.utils.ToolUtil.getDataByTime;public class AddminUserinfo { private JFrame jf;//展示用户管理界面的窗体组件 private JTable table;//展示员工信息的表格组件 private DefaultTableModel model;//封装部门信息所需要的表格数据模型组件 private JTextField textField;//输入工号所需要的文本框组件 private JTextField textField_1;//输入ID所需要的文本框 private JTextField textField_2;//输入名文本框 private JTextField textField_3;//输入sex文本框 private JTextField textField_4;//输入身份证文本框 private JTextField textField_5;//输入birth文本框 private JTextField textField_6;//输入phone本框 private JTextField textField_7;//输入did文本框 private StaffDao staffDao=new StaffDao(); public AddminUserinfo(){ jf=new JFrame("管理员界面"); jf.setBounds(400,50,600,680); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuBar menuBar=new JMenuBar(); jf.setJMenuBar(menuBar); //添加部门管理菜单 JMenu mnNewMenu=new JMenu("部门管理"); menuBar.add(mnNewMenu); //添加 添加部门选项 JMenuItem mntmNewMenuItem=new JMenuItem("部门添加"); mntmNewMenuItem.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new AdminMenuFrm(); } }); mnNewMenu.add(mntmNewMenuItem); //添加 部门修改选项 JMenuItem mntmNewMenuItem_1=new JMenuItem("部门修改"); mntmNewMenuItem_1.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new AddminTypeEdit(); } }); mnNewMenu.add(mntmNewMenuItem_1); //商品管理菜单 JMenu mnNewMenu_2=new JMenu("商品管理"); menuBar.add(mnNewMenu_2); //商品添加 选项 JMenuItem mntmNewMenuItem_2=new JMenuItem("商品添加"); mntmNewMenuItem_2.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new AdmingoodAdd();//商品添加的界面 } }); mnNewMenu_2.add(mntmNewMenuItem_2); //商品修改 选项 JMenuItem mntmNewMenuItem_3=new JMenuItem("商品修改"); mnNewMenu_2.add(mntmNewMenuItem_3); //员工管理菜单 JMenu menu1=new JMenu("员工管理"); menuBar.add(menu1); //添加员工 选项 JMenuItem mntnNewMenuItem_4=new JMenuItem("员工信息"); menu1.add(mntnNewMenuItem_4); //添加流水信息菜单选项 JMenuItem mntnNewMenuItem_5=new JMenuItem("流水信息"); mntnNewMenuItem_5.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { jf.dispose(); new Addminflowinfo(); } }); menu1.add(mntnNewMenuItem_5); //添加退出系统菜单 JMenu mnNewMenu_1=new JMenu("退出系统"); mnNewMenu_1.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { JOptionPane.showMessageDialog(null,"欢迎下次使用!"); jf.dispose(); } }); menuBar.add(mnNewMenu_1); //创建查询的操作面板 JPanel panel = new JPanel(); panel.setBorder(new TitledBorder(null, "员工查询", TitledBorder.LEADING, TitledBorder.TOP, null, Color.black)); panel.setBounds(20, 10, 541, 78); jf.getContentPane().add(panel); panel.setLayout(null); jf.getContentPane().setLayout(null); //初始化查询字段所对应的 JLabel lblNewLabel=new JLabel("工号:"); lblNewLabel.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel.setBounds(125,31,45,27); panel.add(lblNewLabel); //初始化输入查询关键字所对应的文本框 textField=new JTextField(); textField.setBounds(185,28,146,24); panel.add(textField); textField.setColumns(10); //创建查询按钮 JButton button=new JButton("查询"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String staffid=textField.getText(); int gonghao=Integer.parseInt(staffid); UserStaff userStaff=new UserStaff(); userStaff.setStaffid(gonghao); putDtates(userStaff); } }); button.setFont(new Font("幼圆",Font.BOLD,14)); button.setBounds(352,28,81,25); panel.add(button); //创建员工查询的面板 JPanel panel_1 = new JPanel(); panel_1.setBorder(new TitledBorder(null, "员工信息", TitledBorder.LEADING, TitledBorder.TOP, null, Color.black)); panel_1.setBounds(20, 105, 541, 195); panel_1.setLayout(null); //展示商品信息所对应的表头数据 String[]title={"工号","姓名","性别","身份证","出生日期","电话","部门"}; //展示商品信息所需要的二维数组 String[][]dates={}; //初始化展示商品信息所对应的表格数据模型 model=new DefaultTableModel(dates,title); //初始化表格组件 table=new JTable(model); //查询数据库获取的所有员工信息 putDtates(new UserStaff()); table.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent evt) { typeTableMousePressed(); } }); //添加到面板中 panel_1.setLayout(null); JScrollPane jscrollPane=new JScrollPane(); jscrollPane.setBounds(20,22,496,154); jscrollPane.setViewportView(table); panel_1.add(jscrollPane); jf.getContentPane().add(panel_1); //创建编辑商品信息所对应的面板 JPanel panel_2 = new JPanel(); panel_2.setBorder(new TitledBorder(null, "员工编辑", TitledBorder.LEADING, TitledBorder.TOP, null, Color.black)); panel_2.setBounds(20, 310, 541, 292); jf.getContentPane().add(panel_2); panel_2.setLayout(null); //创建展示商品名所需要的标签 JLabel lblNewLabel_1=new JLabel("姓名:"); lblNewLabel_1.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_1.setBounds(55,31,45,27); panel_2.add(lblNewLabel_1); //初始化输入商品名所需的文本框 textField_1=new JTextField(); textField_1.setBounds(101,31,129,27); panel_2.add(textField_1); textField_1.setColumns(10); //创建展示编号所需要的标签 JLabel lblNewLabel_2=new JLabel("工号:"); lblNewLabel_2.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_2.setBounds(294,31,45,27); panel_2.add(lblNewLabel_2); //初始化编号文本框 textField_2=new JTextField(); textField_2.setBounds(340,31,128,27); panel_2.add(textField_2); textField_2.setColumns(10); //创建展示条形码所需要的标签 JLabel lblNewLabel_3=new JLabel("性别:"); lblNewLabel_3.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_3.setBounds(54,79,60,27); panel_2.add(lblNewLabel_3); //初始化输入条形码文本框 textField_3=new JTextField(); textField_3.setBounds(101,79,129,27); panel_2.add(textField_3); textField_3.setColumns(10); //创建展示产地的标签 JLabel lblNewLabel_4=new JLabel("身份证:"); lblNewLabel_4.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_4.setBounds(277,79,60,27); panel_2.add(lblNewLabel_4); //初始化产地文本 textField_4=new JTextField(); textField_4.setBounds(340,79,129,27); panel_2.add(textField_4); textField_4.setColumns(10); //产商标签 JLabel lblNewLabel_5=new JLabel("出生日期:"); lblNewLabel_5.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_5.setBounds(23,127,75,27); panel_2.add(lblNewLabel_5); //初始化产商文本 textField_5=new JTextField(); textField_5.setBounds(101,127,129,27); panel_2.add(textField_5); textField_5.setColumns(10); //规格标签 JLabel lblNewLabel_6=new JLabel("电话:"); lblNewLabel_6.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_6.setBounds(289,127,60,27); panel_2.add(lblNewLabel_6); //初始化规格文本 textField_6=new JTextField(); textField_6.setBounds(340,127,129,27); panel_2.add(textField_6); textField_6.setColumns(10); //进价标签 JLabel lblNewLabel_7=new JLabel("部门:"); lblNewLabel_7.setFont(new Font("幼圆",Font.BOLD,14)); lblNewLabel_7.setBounds(55,175,60,27); panel_2.add(lblNewLabel_7); //进价文本 textField_7=new JTextField(); textField_7.setBounds(101,175,129,27); panel_2.add(textField_7); textField_7.setColumns(10); JButton btnNewButton_1=new JButton("修改"); btnNewButton_1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String staffid=textField_1.getText(); String staffname=textField_2.getText(); String staffsex=textField_3.getText(); String staffsfz=textField_4.getText(); String staffbirth=textField_5.getText(); String staffphone=textField_6.getText(); String staffdid=textField_7.getText(); if(ToolUtil.isEmpty(staffid)|| ToolUtil.isEmpty(staffname)|| ToolUtil.isEmpty(staffsex)|| ToolUtil.isEmpty(staffsfz)|| ToolUtil.isEmpty(staffbirth)|| ToolUtil.isEmpty(staffphone)|| ToolUtil.isEmpty(staffdid)){ JOptionPane.showMessageDialog(null,"请输入相关内容!"); return; } //封装到userstaff UserStaff userStaff=new UserStaff(); userStaff.setStaffid(Integer.parseInt(staffid)); userStaff.setStaffname(staffname); userStaff.setStaffsex(staffsex); userStaff.setStaffsfz(staffsfz); userStaff.setStaffbirthday(new Date(staffbirth)); userStaff.setStaffphone(staffphone); userStaff.setStaffdid(Integer.parseInt(staffdid)); //获取链接 Connection connection=null; try { connection=Dbutil.getConnection(); //调用修改函数 int i=staffDao.update(connection,userStaff); if(i==1){ JOptionPane.showMessageDialog(null,"修改成功!"); putDtates(new UserStaff()); }else{ JOptionPane.showMessageDialog(null,"修改失败!"); } } catch (Exception ex) { ex.printStackTrace(); }finally { if(connection!=null){ try { Dbutil.closeConnection(connection); } catch (Exception ex) { ex.printStackTrace(); } } } } }); btnNewButton_1.setBounds(230,240,93,25); btnNewButton_1.setFont(new Font("幼圆",Font.BOLD,14)); panel_2.add(btnNewButton_1); //展示jf,并且不可改变大小 jf.setVisible(true); jf.setResizable(false); } public void typeTableMousePressed(){ //获取用户所选择的行索引 int row=table.getSelectedRow(); //拿到书的编号 //拿这行所对应的数据 index表示第几行 0表示第一列 1表示第二列 textField_1.setText(table.getValueAt(row,0).toString()); textField_2.setText(table.getValueAt(row,1).toString()); textField_3.setText(table.getValueAt(row,2).toString()); textField_4.setText(table.getValueAt(row,3).toString()); textField_5.setText(table.getValueAt(row,4).toString()); textField_6.setText(table.getValueAt(row,5).toString()); textField_7.setText(table.getValueAt(row,6).toString()); } public void putDtates(UserStaff staff){ //将获得的对应数据给数据模型对象 DefaultTableModel model=(DefaultTableModel) table.getModel(); model.setRowCount(0);//设置总的行数 //获取链接对象 Connection connection=null; try { connection= Dbutil.getConnection(); //调用UserDao中的方法进行查询 ResultSet resultSet=staffDao.list(connection,staff); //如果有数据的话 while (resultSet.next()){ Vector rowData=new Vector(); //拿数据 rowData.add(resultSet.getInt("staff_id"));//编码1 rowData.add(resultSet.getString("staff_name"));//商品名称2 rowData.add(resultSet.getString("staff_sex"));//条形码3 rowData.add(resultSet.getString("staff_sfz"));//产地4 rowData.add(resultSet.getDate("staff_birthday"));//产商5 rowData.add(resultSet.getString("staff_phone"));//规格型号6 rowData.add(resultSet.getInt("did"));//库存7 //将行数据添加到数据模型中 model.addRow(rowData); } } catch (Exception e) { e.printStackTrace(); }finally { if(connection!=null){ try { Dbutil.closeConnection(connection); } catch (Exception e) { e.printStackTrace(); } } } } public static void main(String[] args) { new AddminUserinfo(); }}
实现结果如下:
上一篇: 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的动物识别系统(Python+PySide6界面+训练代码)
下一篇: Three.js第2篇,Three.js加载glb / gltf模型,Vue加载glb / gltf模型(如何在vue中使用three.js,vue使用threejs加载glb模型)
本文标签
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。