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