JAVA结课作品——超市管理系统

项目描述:一个简单的超市管理系统,能够实现用户登入和注册功能,共分为前台和后台两个主要界面,普通用户界面操作权限收到限制,只能对商品和销售记录进行简单查询操作,后台中可以进行商品的删除、修改、查询,可以查看用户信息,可以修改用户信息。具体的代码如下:

      

                            

 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic void mousePressed(MouseEvent evt) {jf.dispose();new AdmingoodAdd();}});mnNewMeun_2.add(mntmNewMenuItem_2);//添加商品修改JMenuItem mntmNewMenuItem_3=new JMenuItem("商品修改");mntmNewMenuItem_3.addMouseListener(new MouseAdapter() {@Overridepublic 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() {@Overridepublic void mousePressed(MouseEvent evt) {jf.dispose();new AddminUserinfo();}});menu1.add(mntmNewMenuItem_4);//添加流水信息选项JMenuItem mntmNewMenuItem_5=new JMenuItem("流水信息");mntmNewMenuItem_5.addMouseListener(new MouseAdapter() {@Overridepublic void mousePressed(MouseEvent evt) {jf.dispose();new Addminflowinfo();}});menu1.add(mntmNewMenuItem_5);//添加退出系统菜单JMenu mnNewMeun_1=new JMenu("退出系统");mnNewMeun_1.addMouseListener(new MouseAdapter() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic void mousePressed(MouseEvent evt) {jf.dispose();new AdminMenuFrm();}});mnNewMenu.add(mntmNewMenuItem);//添加   部门修改选项JMenuItem mntmNewMenuItem_1=new JMenuItem("部门修改");mntmNewMenuItem_1.addMouseListener(new MouseAdapter() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic void mousePressed(MouseEvent evt) {jf.dispose();new AddminUserinfo();//进入员工管理的界面}});menu1.add(mntnNewMenuItem_4);//添加流水信息菜单选项JMenuItem mntnNewMenuItem_5=new JMenuItem("流水信息");mntnNewMenuItem_5.addMouseListener(new MouseAdapter() {@Overridepublic void mousePressed(MouseEvent evt) {jf.dispose();new Addminflowinfo();}});menu1.add(mntnNewMenuItem_5);//添加退出系统菜单JMenu mnNewMenu_1=new JMenu("退出系统");mnNewMenu_1.addMouseListener(new MouseAdapter() {@Overridepublic 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() {@Overridepublic void mousePressed(MouseEvent evt) {jf.dispose();new AdminMenuFrm();}});mnNewMenu.add(mntmNewMenuItem);//添加   部门修改选项JMenuItem mntmNewMenuItem_1=new JMenuItem("部门修改");mntmNewMenuItem_1.addMouseListener(new MouseAdapter() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic void mousePressed(MouseEvent evt) {jf.dispose();new Addminflowinfo();}});menu1.add(mntnNewMenuItem_5);//添加退出系统菜单JMenu mnNewMenu_1=new JMenu("退出系统");mnNewMenu_1.addMouseListener(new MouseAdapter() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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;}//封装到userstaffUserStaff 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"));//编码1rowData.add(resultSet.getString("staff_name"));//商品名称2rowData.add(resultSet.getString("staff_sex"));//条形码3rowData.add(resultSet.getString("staff_sfz"));//产地4rowData.add(resultSet.getDate("staff_birthday"));//产商5rowData.add(resultSet.getString("staff_phone"));//规格型号6rowData.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();}
}

实现结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2774604.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用Docker本地部署一个开源网址导航页并分享好友公网使用

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…

PHP入门指南:进阶篇

PHP入门指南:进阶篇 PHP入门指南:进阶篇1. 面向对象编程(OOP)1.1 类和对象的基本概念1.2 构造函数和析构函数1.3 属性和方法的访问控制1.4 继承与多态 2. 错误和异常处理2.1 错误处理机制2.2 异常处理机制2.3 自定义异常类 3. PHP…

【GAMES101】Lecture 19 相机

目录 相机 视场 Field of View (FOV) 曝光(Exposure) 感光度(ISO) 光圈 快门 相机 成像可以通过我们之前学过的光栅化成像和光线追踪成像来渲染合成,也可以用相机拍摄成像 今天就来学习一下相机是如何成像的…

NeRF从入门到放弃1:原理介绍

基本概念 原始的论文中所介绍的NeRF(NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis,用神经辐射场表示场景进行视角合成),是神经辐射场以及体积渲染技术的结合,即用神经辐射场隐式地表示场…

代码随想录算法训练营第29天|491.递增子序列 * * 46.全排列 * 47.全排列 II

文章目录 491.递增子序列思路:代码 思路:优化代码: 46.全排列思路代码一:使用used数组代码二:使用path判断元素 47.全排列 II思路一:层节点和路径都是用used数组做记录思路二:层通过排序后是否重…

【第二届 Runway短视频创作大赛】——截至日期2024年03月01日

短视频创作大赛 关于AI Film Festival竞赛概况参加资格报名期间报名方法 提交要求奖品附录 关于AI Film Festival 2022年成立的AIFF是一个融合了最新AI技术于电影制作中的艺术和艺术家节日,让我们得以一窥新创意时代的风采。从众多参赛作品中…

C语言笔试题之实现C库函数 strstr()(设置标志位)

实例要求: 1、请你实现C库函数strstr()(stdio.h & string.h),请在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始);2、函数声明:int strStr(char* h…

MATLAB知识点:易错点:判断浮点数是否相等

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.4.3 关系运算 下面我们再来看一个易错点&…

flask+pyinstaller实现mock接口,并打包到exe运行使用postman验证

flask代码 from flask import Flask, request, jsonifyapp Flask(__name__)app.route("/login", methods[POST]) def login():username request.json.get("username").strip() # 用户名password request.json.get("password").strip() # 密…

林浩然的趣味解读:赫伯特·亚历山大·西蒙的跨界智慧与伟大成就

林浩然的趣味解读:赫伯特亚历山大西蒙的跨界智慧与伟大成就 Lin Haoran’s Amusing Interpretation: Herbert Alexander Simon’s Interdisciplinary Wisdom and Great Achievements 林浩然,这位机智幽默且对知识充满好奇的探索者,最近在一次…

代码随想录算法训练营第二十四天 |回溯算法基础知识,77.组合(已补充)

回溯算法理论基础(已观看) 带你学透回溯算法(理论篇)| 回溯法精讲!_哔哩哔哩_bilibili #题目分类 什么是回溯法 溯法也可以叫做回溯搜索法,它是一种搜索的方式。 在二叉树系列中,我们已经不…

2022年通信工程师初级 实务 真题

文章目录 三、第3章 接入网,接入网的功能结构,无线频段及技术四、第4章 互联网,网络操作系统的功能,IP地址五、第6章 移动通信系统,FDD、TDD 三、第3章 接入网,接入网的功能结构,无线频段及技术…

numa网卡绑定

#概念 参考:https://www.jianshu.com/p/0f3b39a125eb(opens new window) chip:芯片,一个cpu芯片上可以包含多个cpu core,比如四核,表示一个chip里4个core。 socket:芯片插槽,颗,跟…

【Spring Boot】第二篇 自动装配原来就这么简单

导航 一. 什么是自动装配?二. 如何实现自动装配?1. 配置清单在哪里?2. 自动装配实现核心点1: 从META‐INF/spring.factories路径读取配置类清单核心点2: 过滤第一次过滤: 根据EnableAutoConfiguration注解中exclude和excludeName属性第二次过滤: 通过AutoConfigurationImpor…

Java实现网上药店系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 药品类型模块2.3 药品档案模块2.4 药品订单模块2.5 药品收藏模块2.6 药品资讯模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 药品表3.2.3 药品订单表3.2.4 药品收藏表3.2.5 药品留言表…

【集合系列】LinkedHashMap 集合

LinkedHashMap集合 1. 概述2. 方法3. 遍历方式4. 代码示例5. 注意事项 其他集合类 祖父类 Map 父类 HashMap 集合类的遍历方式 具体信息请查看 API 帮助文档 1. 概述 LinkedHashMap 是 Java 中的一种特殊类型的 HashMap,它继承自 HashMap 类,并实现了…

免费:阿里云学生服务器领取申请(2024新版教程)

2024年阿里云学生服务器免费领取,先完成学生认证即可免费领取一台云服务器ECS,配置为2核2G、1M带宽、40G系统盘,在云服务器ECS实例过期之前,完成实验与认证任务,还可以免费续费6个月,阿里云百科aliyunbaike…

2023爱分析·大模型厂商全景报告|爱分析报告

01 研究范围定义 研究范围 大模型是指通过在海量数据上依托强大算力资源进行训练后能完成大量不同下游任务的模型。2023年以来,ChatGPT引爆全球大模型市场。国内众多大模型先后公测,众多互联网领军者投身大模型事业,使得大模型市场进入“百团…

Redis篇之过期淘汰策略

一、数据的过期策略 1.什么是过期策略 Redis对数据设置数据的有效时间,数据过期以后,就需要将数据从内存中删除掉。可以按照不同的规则进行删除,这种删除规则就被称之为数据的删除策略(数据过期策略)。 2.过期策略-惰…

【C语言自定义类型详解进阶】结构体(补充结构体的对齐和位段,一口气看完系列,央妈都点赞的博文)

目录 1.结构体 1.1 结构的基础知识 1.2 结构的声明 1.2.1特殊的声明(匿名结构体类型) 1.3结构体变量的定义 1.4关于匿名结构体类型的补充 1.5结构体的自引用 1.6结构体变量的初始化 2.结构体内存对齐(重点) 2.1偏移量补…