項(xiàng)目描述:一個(gè)簡單的超市管理系統(tǒng),能夠?qū)崿F(xiàn)用戶登入和注冊功能,共分為前臺和后臺兩個(gè)主要界面,普通用戶界面操作權(quán)限收到限制,只能對商品和銷售記錄進(jìn)行簡單查詢操作,后臺中可以進(jìn)行商品的刪除、修改、查詢,可以查看用戶信息,可以修改用戶信息。具體的代碼如下:
? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ??
?TooLUtil工具類:在該類中定義一些方法,用于判斷字符串是否為空、獲取當(dāng)前時(shí)間、對時(shí)間進(jìn)行格式轉(zhuǎn)化,同時(shí)獲取當(dāng)前用戶登入,具體代碼如下所示:
package cn.qinlimei.goodmanager.utils;
import javax.xml.crypto.Data;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 在該類中定義一些方法,用于判斷字符串是否為空、獲取當(dāng)前時(shí)間、對時(shí)間進(jìn)行格式轉(zhuǎn)化
* 獲取當(dāng)前用戶登入
*/
public class ToolUtil {
//判斷字符串是否為空
public static boolean isEmpty(String str){
if(str!=null&& !"".equals(str.trim())){//字符串兩端的空格去掉
return false;//不是空的返回false
}
return true;//空的話就返回真
}
//獲取當(dāng)前系統(tǒng)時(shí)間所對應(yīng)的毫秒值
public static Long getTime(){
long time=System.currentTimeMillis();
return time;
}
//將一個(gè)long類型的毫秒值轉(zhuǎn)換成指定格式的日期字符串
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類:實(shí)現(xiàn)用戶登入的類
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;
//用戶實(shí)現(xiàn)登入的界面
public class LoginFrm extends JFrame {
public static User currentUser;//當(dāng)?shù)侨氤晒?,使用該變量存儲登入的用? private JFrame jf;//登入界面的窗體組件
private JTextField userNameText;//輸入用戶名的文本框
private JTextField passwordText;//輸入密碼的文本框
private JComboBox comboBox;//用戶角色的下拉選擇框
//創(chuàng)建一個(gè)UserDao對象
private UserDao userDao=new UserDao();
public LoginFrm(){
//初始化窗體組件
jf=new JFrame("超市管理系統(tǒng)");
jf.getContentPane().setFont(new Font("幼圓",Font.BOLD,14));
jf.setBounds(600,250,500,467);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.getContentPane().setLayout(null);
//初始化展示用戶名三個(gè)字所需要的標(biāo)簽
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);
//初始化展示密碼兩個(gè)字所需要的標(biāo)簽
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);
//初始化展示權(quán)限兩個(gè)字的標(biāo)簽
JLabel label_2;
label_2=new JLabel("權(quán)限");
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("登入");
//給登入按鈕添加一個(gè)動(dòng)作監(jiān)聽器
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) { //編寫登入的業(yè)務(wù)邏輯
checkLogih();
}
});
button.setBounds(153,320,65,29);
jf.getContentPane().add(button);
//初始化注冊按鈕
JButton button_1=new JButton("注冊");
//給注冊按鈕添加一個(gè)動(dòng)作監(jiān)聽器
button_1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) { //編寫注冊的業(yè)務(wù)邏輯
regUser();//去注冊界面的方法
}
});
button_1.setBounds(263,320,65,29);
jf.getContentPane().add(button_1);
//初始化展示 用戶登入標(biāo)題所需要的標(biāo)簽
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);
}
//去注冊頁面所對應(yīng)的方法
public void regUser(){
//把當(dāng)前的jf頁面隱藏掉
jf.setVisible(false);
new RegFram();
}
//完成用戶登入的業(yè)務(wù)邏輯
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;
}
//把數(shù)據(jù)封裝到User中
User user=new User();
user.setUername(userName);
user.setUerpassword(password);
if(index==0){
user.setRole(1);
}else{
user.setRole(2);
}
//獲取一個(gè)鏈接對象
Connection connection=null;
try {
connection= Dbutil.getConnection();
User login=userDao.login(connection,user);
if(login==null){
JOptionPane.showMessageDialog(null,"登入失敗");
}else{
currentUser =login;//記錄當(dāng)前登入的用戶
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類:實(shí)現(xiàn)部門管理的類
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);
//初始化展示部門類別四個(gè)字所對應(yīng)的標(biāo)簽
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);
//初始化展示部門編號所對應(yīng)的標(biāo)簽
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) {//添加按鈕的業(yè)務(wù)邏輯
//獲取部門名稱和部門編號
String typeName= textField.getText();
int typeRemrke= Integer.parseInt(textArea.getText());
//判斷是否為空
if(ToolUtil.isEmpty(typeName)||ToolUtil.isEmpty(String.valueOf(typeRemrke))){
JOptionPane.showMessageDialog(null,"請輸入相關(guān)信息");
return;
}
//把數(shù)據(jù)封裝到部門對象中
Department department=new Department();
department.setDepartmentname(typeName);
department.setDepartmentid(typeRemrke);
//獲取鏈接對象
Connection connection=null;
try {
//把數(shù)據(jù)保存在數(shù)據(jù)庫中
connection=Dbutil.getConnection();
//調(diào)用部門管理中的方法進(jìn)行信息保存
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);
//創(chuàng)建重置按鈕
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);
//創(chuàng)建菜單欄組件
JMenuBar menuBar=new JMenuBar();
jf.setJMenuBar(menuBar);
//添加部門管理菜單
JMenu mnNewMeun=new JMenu("部門管理");
menuBar.add(mnNewMeun);
//添加部門 選項(xiàng)
JMenuItem mntmNewMenuItem=new JMenuItem("部門添加");
mnNewMeun.add(mntmNewMenuItem);
//添加部門修改選項(xiàng)
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);
//添加商品添加選項(xiàng)
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);
//添加用戶選項(xiàng)
JMenuItem mntmNewMenuItem_4=new JMenuItem("添加員工");
mntmNewMenuItem_4.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent evt) {
jf.dispose();
new AddminUserinfo();
}
});
menu1.add(mntmNewMenuItem_4);
//添加流水信息選項(xiàng)
JMenuItem mntmNewMenuItem_5=new JMenuItem("流水信息");
mntmNewMenuItem_5.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent evt) {
jf.dispose();
new Addminflowinfo();
}
});
menu1.add(mntmNewMenuItem_5);
//添加退出系統(tǒng)菜單
JMenu mnNewMeun_1=new JMenu("退出系統(tǒng)");
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類:實(shí)現(xiàn)商品管理的類:
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;//輸入產(chǎn)地文本框
private JTextField textField_5;//輸入產(chǎn)商文本框
private JTextField textField_6;//輸入規(guī)文本框
private JTextField textField_7;//輸入文本框
private JTextField textField_8;//輸入售價(jià)文本框
private JTextField textField_9;//輸入庫存文本框
private JTextField textField_10;//庫存下限文本框
//創(chuàng)建商品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);
//創(chuàng)建一個(gè)添加商品信息所對應(yīng)的面板組件
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);
//創(chuàng)建展示商品名所需要的標(biāo)簽
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);
//創(chuàng)建展示編號所需要的標(biāo)簽
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);
//創(chuàng)建展示條形碼所需要的標(biāo)簽
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);
//創(chuàng)建展示產(chǎn)地的標(biāo)簽
JLabel lblNewLabel_4=new JLabel("產(chǎn)地:");
lblNewLabel_4.setFont(new Font("幼圓",Font.BOLD,14));
lblNewLabel_4.setBounds(294,79,60,27);
panel.add(lblNewLabel_4);
//初始化產(chǎn)地文本
textField_4=new JTextField();
textField_4.setBounds(340,79,129,27);
panel.add(textField_4);
textField_4.setColumns(10);
//產(chǎn)商標(biāo)簽
JLabel lblNewLabel_5=new JLabel("產(chǎn)商:");
lblNewLabel_5.setFont(new Font("幼圓",Font.BOLD,14));
lblNewLabel_5.setBounds(55,127,60,27);
panel.add(lblNewLabel_5);
//初始化產(chǎn)商文本
textField_5=new JTextField();
textField_5.setBounds(101,127,129,27);
panel.add(textField_5);
textField_5.setColumns(10);
//規(guī)格標(biāo)簽
JLabel lblNewLabel_6=new JLabel("規(guī)格:");
lblNewLabel_6.setFont(new Font("幼圓",Font.BOLD,14));
lblNewLabel_6.setBounds(294,127,60,27);
panel.add(lblNewLabel_6);
//初始化規(guī)格文本
textField_6=new JTextField();
textField_6.setBounds(340,127,129,27);
panel.add(textField_6);
textField_6.setColumns(10);
//進(jìn)價(jià)標(biāo)簽
JLabel lblNewLabel_7=new JLabel("進(jìn)價(jià):");
lblNewLabel_7.setFont(new Font("幼圓",Font.BOLD,14));
lblNewLabel_7.setBounds(45,175,60,27);
panel.add(lblNewLabel_7);
//進(jìn)價(jià)文本
textField_7=new JTextField();
textField_7.setBounds(101,175,129,27);
panel.add(textField_7);
textField_7.setColumns(10);
//售價(jià)標(biāo)簽
JLabel lblNewLabel_8=new JLabel("售價(jià):");
lblNewLabel_8.setFont(new Font("幼圓",Font.BOLD,14));
lblNewLabel_8.setBounds(294,175,45,27);
panel.add(lblNewLabel_8);
//售價(jià)文本
textField_8=new JTextField();
textField_8.setBounds(340,175,129,27);
panel.add(textField_8);
textField_8.setColumns(10);
//庫存標(biāo)簽
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);
//庫存下限標(biāo)簽
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);
//查詢數(shù)據(jù)庫獲取類別數(shù)據(jù)
//創(chuàng)建添加按鈕
JButton btnNewButton=new JButton("添加");
btnNewButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) { //添加商品的業(yè)務(wù)邏輯代碼
//從文本框中獲取用戶輸入的數(shù)據(jù)
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();
//對數(shù)據(jù)進(jìn)行校驗(yàn)
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,"請輸入相關(guān)內(nèi)容!");
return;
}
//因?yàn)閺奈谋究蛑械玫降氖亲址愋偷臄?shù)據(jù),無法將整形等數(shù)據(jù)賦給商品對象中的整形等數(shù)據(jù),因此要進(jìn)行數(shù)據(jù)解析
Integer bianhao;//編號
Double jinjia;//進(jìn)價(jià)
Double shoujia;//售價(jià)
Integer kucun;//庫存
Integer kcxiaxian;//庫存下限
try {
bianhao=Integer.parseInt(goodid);
jinjia= new BigDecimal(goodjj).setScale(2).doubleValue();//保留兩位小數(shù)點(diǎn)
shoujia= new BigDecimal(goodsj).setScale(2).doubleValue();
kucun=Integer.parseInt(goodkc);
kcxiaxian=Integer.parseInt(goodxx);
}catch (Exception e1){
JOptionPane.showMessageDialog(null,"參數(shù)錯(cuò)誤!");
return;
}
//創(chuàng)建一個(gè)商品對象用來封裝參數(shù)
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);
//獲取鏈接對象進(jìn)行數(shù)據(jù)保存操作
Connection connection=null;
try {
connection=Dbutil.getConnection();
//調(diào)用商品dao中的方法完成數(shù)據(jù)保存
int i=goodsDao.add(connection,goods);//會返回一個(gè)整形
if(i==1){
JOptionPane.showMessageDialog(null,"添加成功!");
reset();//進(jìn)行清空操作
}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);
//創(chuàng)建重置按鈕
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);
//創(chuàng)建菜單欄組件
JMenuBar menuBar=new JMenuBar();
jf.setJMenuBar(menuBar);
//添加部門管理菜單
JMenu mnNewMenu=new JMenu("部門管理");
menuBar.add(mnNewMenu);
//添加 添加部門選項(xiàng)
JMenuItem mntmNewMenuItem=new JMenuItem("部門添加");
mntmNewMenuItem.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent evt) {
jf.dispose();
new AdminMenuFrm();
}
});
mnNewMenu.add(mntmNewMenuItem);
//添加 部門修改選項(xiàng)
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);
//商品添加 選項(xiàng)
JMenuItem mntmNewMenuItem_2=new JMenuItem("商品添加");
mnNewMenu_2.add(mntmNewMenuItem_2);
//商品修改 選項(xiàng)
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);
//添加員工 選項(xiàng)
JMenuItem mntnNewMenuItem_4=new JMenuItem("員工信息");
mntnNewMenuItem_4.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent evt) {
jf.dispose();
new AddminUserinfo();//進(jìn)入員工管理的界面
}
});
menu1.add(mntnNewMenuItem_4);
//添加流水信息菜單選項(xiàng)
JMenuItem mntnNewMenuItem_5=new JMenuItem("流水信息");
mntnNewMenuItem_5.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent evt) {
jf.dispose();
new Addminflowinfo();
}
});
menu1.add(mntnNewMenuItem_5);
//添加退出系統(tǒng)菜單
JMenu mnNewMenu_1=new JMenu("退出系統(tǒng)");
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(){
//清空所有文本框中的內(nèi)容
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類:實(shí)現(xiàn)員工管理的類:
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;//封裝部門信息所需要的表格數(shù)據(jù)模型組件
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);
//添加 添加部門選項(xiàng)
JMenuItem mntmNewMenuItem=new JMenuItem("部門添加");
mntmNewMenuItem.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent evt) {
jf.dispose();
new AdminMenuFrm();
}
});
mnNewMenu.add(mntmNewMenuItem);
//添加 部門修改選項(xiàng)
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);
//商品添加 選項(xiàng)
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);
//商品修改 選項(xiàng)
JMenuItem mntmNewMenuItem_3=new JMenuItem("商品修改");
mnNewMenu_2.add(mntmNewMenuItem_3);
//員工管理菜單
JMenu menu1=new JMenu("員工管理");
menuBar.add(menu1);
//添加員工 選項(xiàng)
JMenuItem mntnNewMenuItem_4=new JMenuItem("員工信息");
menu1.add(mntnNewMenuItem_4);
//添加流水信息菜單選項(xiàng)
JMenuItem mntnNewMenuItem_5=new JMenuItem("流水信息");
mntnNewMenuItem_5.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent evt) {
jf.dispose();
new Addminflowinfo();
}
});
menu1.add(mntnNewMenuItem_5);
//添加退出系統(tǒng)菜單
JMenu mnNewMenu_1=new JMenu("退出系統(tǒng)");
mnNewMenu_1.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent evt) {
JOptionPane.showMessageDialog(null,"歡迎下次使用!");
jf.dispose();
}
});
menuBar.add(mnNewMenu_1);
//創(chuàng)建查詢的操作面板
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);
//初始化查詢字段所對應(yīng)的
JLabel lblNewLabel=new JLabel("工號:");
lblNewLabel.setFont(new Font("幼圓",Font.BOLD,14));
lblNewLabel.setBounds(125,31,45,27);
panel.add(lblNewLabel);
//初始化輸入查詢關(guān)鍵字所對應(yīng)的文本框
textField=new JTextField();
textField.setBounds(185,28,146,24);
panel.add(textField);
textField.setColumns(10);
//創(chuàng)建查詢按鈕
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);
//創(chuàng)建員工查詢的面板
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);
//展示商品信息所對應(yīng)的表頭數(shù)據(jù)
String[]title={"工號","姓名","性別","身份證","出生日期","電話","部門"};
//展示商品信息所需要的二維數(shù)組
String[][]dates={};
//初始化展示商品信息所對應(yīng)的表格數(shù)據(jù)模型
model=new DefaultTableModel(dates,title);
//初始化表格組件
table=new JTable(model);
//查詢數(shù)據(jù)庫獲取的所有員工信息
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);
//創(chuàng)建編輯商品信息所對應(yīng)的面板
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);
//創(chuàng)建展示商品名所需要的標(biāo)簽
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);
//創(chuàng)建展示編號所需要的標(biāo)簽
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);
//創(chuàng)建展示條形碼所需要的標(biāo)簽
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);
//創(chuàng)建展示產(chǎn)地的標(biāo)簽
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);
//初始化產(chǎn)地文本
textField_4=new JTextField();
textField_4.setBounds(340,79,129,27);
panel_2.add(textField_4);
textField_4.setColumns(10);
//產(chǎn)商標(biāo)簽
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);
//初始化產(chǎn)商文本
textField_5=new JTextField();
textField_5.setBounds(101,127,129,27);
panel_2.add(textField_5);
textField_5.setColumns(10);
//規(guī)格標(biāo)簽
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);
//初始化規(guī)格文本
textField_6=new JTextField();
textField_6.setBounds(340,127,129,27);
panel_2.add(textField_6);
textField_6.setColumns(10);
//進(jìn)價(jià)標(biāo)簽
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);
//進(jìn)價(jià)文本
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,"請輸入相關(guān)內(nèi)容!");
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();
//調(diào)用修改函數(shù)
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();
//拿到書的編號
//拿這行所對應(yīng)的數(shù)據(jù) 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){
//將獲得的對應(yīng)數(shù)據(jù)給數(shù)據(jù)模型對象
DefaultTableModel model=(DefaultTableModel) table.getModel();
model.setRowCount(0);//設(shè)置總的行數(shù)
//獲取鏈接對象
Connection connection=null;
try {
connection= Dbutil.getConnection();
//調(diào)用UserDao中的方法進(jìn)行查詢
ResultSet resultSet=staffDao.list(connection,staff);
//如果有數(shù)據(jù)的話
while (resultSet.next()){
Vector rowData=new Vector();
//拿數(shù)據(jù)
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"));//產(chǎn)地4
rowData.add(resultSet.getDate("staff_birthday"));//產(chǎn)商5
rowData.add(resultSet.getString("staff_phone"));//規(guī)格型號6
rowData.add(resultSet.getInt("did"));//庫存7
//將行數(shù)據(jù)添加到數(shù)據(jù)模型中
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();
}
}
實(shí)現(xiàn)結(jié)果如下:文章來源:http://www.zghlxwxcb.cn/news/detail-504546.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-504546.html
到了這里,關(guān)于JAVA結(jié)課作品——超市管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!