java职工工资管理系统(GUI+无数据库)
一、说明
前几个星期刚结束的大一java课设,希望能帮助到大家!
获取源程序包请滑到最后,导入Eclipse可直接运行!!
二、系统实现
1 登录界面
创建容器,把相应得组件设置后放入容器。如:密码、文本框、用户、按钮等组件。设置组件位置使其更加美观(如下图)。账号:root 密码:123
图片:
2 系统界面
在查询窗口输入工号,监听模块识别并在文件内查找与工号相同的员工输出在主界面中。若无此工号员工,则提示员工不存在。以下为界面布局代码和图片(如下图)
图片:
3 系统大致流程图
如图:
三、测试情况
1 登录界面测评情况
如图:
2 主界面测评情况
如图:
3 其它功能(略)
四、代码实现
1 chief.java类
功能:创建集合及main函数所在类,程序的入口。
代码:
import java.util.ArrayList;
public class chief { public static ArrayList<Staff> data = new ArrayList<Staff>(); public static void main(String[] args) { GUI n=new GUI("工资管理系统",450,300); }
}
2 GUI.java类
功能:包含主界面和工资管理系统界面及其相应功能。如:登录、添加员工信息、删除员工信息等一系列功能。
代码:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class GUI extends JFrame{ JLabel labe2=new JLabel("用户名:"); JLabel labe=new JLabel("密码 :");JButton btn2=new JButton("登录");JButton btn3=new JButton("退出");JTextField inputField1=new JTextField(20);JPasswordField inputField2=new JPasswordField(20); JPanel btnP1 = new JPanel(); public GUI(String s,int w,int h){init(s);ii(); GUITools.center(this);setSize(w, h); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }public void init(String s) {setTitle(s);GUITools.setTitleImage(this, ".\\title.png"); btnP1.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(btnP1);btnP1.setLayout(null);labe.setForeground(Color.blue);labe.setBounds(90, 139, 54, 15);btnP1.add(labe); inputField1.setBounds(140, 84, 164, 28);btnP1.add(inputField1);inputField2.setBounds(140, 133, 164, 28); btnP1.add(inputField2);labe2.setForeground(Color.blue); labe2.setBounds(90, 90, 54, 15);btnP1.add(labe2);btn2.setBounds(125, 186, 87, 28);btnP1.add(btn2);btn3.setBounds(240, 186, 87, 28); btnP1.add(btn3);JLabel label_2 = new JLabel(" 职工工资管理系统");label_2.setFont(new Font("Dialog", Font.BOLD, 15));label_2.setForeground(Color.BLACK);label_2.setBounds(140, 40, 187, 34);btnP1.add(label_2);}public void ii() { btn2.addActionListener(e->{ String content=inputField1.getText();String content2=String.valueOf(inputField2.getPassword()); if((content!=null&&!content.trim().equals(""))&&(content2!=null&&!content2.trim().equals(""))) {if(!new Password().Pa(content, content2)) { JOptionPane.showMessageDialog(null,"账号密码错误","消息提示",JOptionPane.ERROR_MESSAGE);inputField2.setText("");}else {this.dispose();File f=new File("Staff.txt");if(!f.exists()) { try {f.createNewFile();} catch (IOException e1) { e1.printStackTrace();}}else {try {FileRead.read();} catch (IOException e1) { e1.printStackTrace();}}new GUI2(this,true); } }else {JOptionPane.showMessageDialog(null,"无效用户","消息提示",JOptionPane.ERROR_MESSAGE); }});btn3.addActionListener(e->{ System.exit(0);}); } }class GUITools {static Toolkit kit = Toolkit.getDefaultToolkit();public static void center(Component c) {int x = (kit.getScreenSize().width - c.getWidth()) / 2;int y = (kit.getScreenSize().height - c.getHeight()) / 2;c.setLocation(x, y);}public static void setTitleImage(JFrame frame,String titleIconPath) {frame.setIconImage(kit.createImage(titleIconPath));}
}class GUI2 extends JDialog{JScrollPane tablePane = new JScrollPane();JTable table = new JTable(); JPanel panel=new JPanel();JLabel label=new JLabel("请输入工号:");JTextField inputField=new JTextField(15);JButton btn=new JButton("搜索");JButton btn2=new JButton("刷新"); JPanel pane2=new JPanel();JButton btny1,btny2,btny3,btny4,btny5;JLabel labe2=new JLabel(" xxx 有限公司 "); JPanel pane3=new JPanel(); JPanel pane=new JPanel();JPanel panei=new JPanel();JPanel panej=new JPanel(); public GUI2(Frame owner, boolean modal) {super(owner, modal);init2(); addComponent(); jj(); queryStudent(); setVisible(true); }private void init2() { this.setTitle("工资管理系统!");this.setSize(600,600);GUITools.center(this);this.setResizable(false); } private void addComponent() {table.getTableHeader().setReorderingAllowed(false); table.getTableHeader().setResizingAllowed(false); table.setEnabled(false); tablePane.setBounds(50, 50, 500, 100); tablePane.setViewportView(table); pane3.add(tablePane); panel.add(label);panel.add(inputField);panel.add(btn);panel.add(btn2);btny1=new JButton("删除用户");btny2=new JButton("修改用户"); btny3=new JButton("添加用户");btny4=new JButton("使用帮助");btny5=new JButton("退出系统");pane2.setLayout(new BorderLayout()); //给按钮的总面板布局panei.setLayout(new FlowLayout(FlowLayout.CENTER,100,10));panej.setLayout(new FlowLayout(FlowLayout.CENTER,100,10));panei.add(btny1);panei.add(labe2);panei.add(btny2);panej.add(btny3);panej.add(btny4);panej.add(btny5);pane2.add(panei,BorderLayout.PAGE_START);pane2.add(panej,BorderLayout.CENTER); pane.setLayout(new BorderLayout()); pane.add(panel,BorderLayout.PAGE_START);pane.add(pane3,BorderLayout.CENTER);pane.add(pane2,BorderLayout.PAGE_END);this.add(pane); } public void jj() {btn.addActionListener(e->{String content=inputField.getText(); if(content!=null&&!content.trim().equals("")) {String h=content.replace(" ","");String[][] tbody = new String[1][7];for (int i = 0; i < chief.data.size(); i++) {if(h.equals(chief.data.get(i).getId())) { tbody[0][0]=chief.data.get(i).getId();tbody[0][1]=chief.data.get(i).getName();tbody[0][2]=chief.data.get(i).getSex();tbody[0][3]=chief.data.get(i).getAge()+"";tbody[0][4]=chief.data.get(i).getBasic();tbody[0][5]=chief.data.get(i).getAllowances();tbody[0][6]=chief.data.get(i).getInterated();String[] thead = {"工号","姓名","性别","年龄","基本工资","津贴","综合工资"};TableModel dataModel = new DefaultTableModel(tbody, thead);table.setModel(dataModel); inputField.setText(""); break;}else { if(i==(chief.data.size()-1)) { JOptionPane.showMessageDialog(null,"该用户不存在","消息提示",JOptionPane.ERROR_MESSAGE);inputField.setText("");}}}} });btn2.addActionListener(e->{queryStudent(); });btny1.addActionListener(e->{aee("删除员工","取消",1);});btny2.addActionListener(e->{ass("修改用户","修改",2);});btny3.addActionListener(e->{ass("添加用户","添加",3); });btny4.addActionListener(e->{aee("帮助文档","退出",4);});btny5.addActionListener(e->{try {FileSave.save();} catch (IOException e1) {e1.printStackTrace();}System.exit(0);}); }public void aee(String u,String s,int g) {JDialog j=new JDialog(this);j.setTitle(u);j.setSize(400,320);GUITools.center(j);j.setResizable(false);JLabel la1=new JLabel(" 工号");JLabel la2=new JLabel(" 1.修改用户:输入原有员工工号,并输入修改的信息。");JLabel la3=new JLabel(" 2.添加用户:输入需要添加的员工所以信息即可。");JLabel la4=new JLabel(" *退出系统可以自动保存员工信息*");JTextField in1=new JTextField(15);JPanel btnP1 = new JPanel();JPanel btnP2 = new JPanel();JButton btn=new JButton("删除");JButton btn2=new JButton(s);JPanel btnP3 = new JPanel(); btnP3.setLayout(new BorderLayout()); if(g==4) {btnP1.setLayout(new BorderLayout());//btnP1.add(la2);btnP1.add(la2,BorderLayout.PAGE_START);btnP1.add(la3,BorderLayout.CENTER);btnP1.add(la4,BorderLayout.PAGE_END); btnP2.add(btn2); btnP3.add(btnP1,BorderLayout.PAGE_START);btnP3.add(btnP2,BorderLayout.CENTER);j.add(btnP3);j.setVisible(true); btn2.addActionListener(e->{j.dispose();});}if(g==1) {btnP1.add(la1);btnP1.add(in1);btnP2.add(btn);btnP2.add(btn2);btnP3.add(btnP1,BorderLayout.PAGE_START);btnP3.add(btnP2,BorderLayout.CENTER);j.add(btnP3);j.setVisible(true); btn.addActionListener(e->{String con1=in1.getText();String h=con1.replace(" ","");if(chief.data.size()==0) {JOptionPane.showMessageDialog(null,"当前没有员工","警告",JOptionPane.ERROR_MESSAGE);in1.setText("");}for (int i = 0; i < chief.data.size(); i++) {if(h.equals(chief.data.get(i).getId())) {in1.setText(""); chief.data.remove(i);queryStudent();break;}if(i==(chief.data.size()-1)) {in1.setText("");JOptionPane.showMessageDialog(null,"该用户不存在","警告",JOptionPane.ERROR_MESSAGE);}}});btn2.addActionListener(e->{j.dispose();});}}public void ass(String p,String w,int g) { JDialog j=new JDialog(this);j.setTitle(p);j.setSize(400,320);GUITools.center(j);j.setResizable(false);JLabel la1=new JLabel(" 工号");JLabel la2=new JLabel(" 姓名");JLabel la3=new JLabel(" 性别");JLabel la4=new JLabel(" 年龄");JLabel la5=new JLabel("基本工资");JLabel la6=new JLabel(" 津贴");JLabel la7=new JLabel(" 总工资");JTextField in1=new JTextField(15);JTextField in2=new JTextField(15);JTextField in3=new JTextField(15);JTextField in4=new JTextField(15);JTextField in5=new JTextField(15);JTextField in6=new JTextField(15);JTextField in7=new JTextField(15);JButton btn=new JButton(w);JButton btn2=new JButton("取消");JPanel btnP1 = new JPanel();JPanel btnP2 = new JPanel();JPanel btnP3 = new JPanel(); JPanel btnP4 = new JPanel();JPanel btnP5 = new JPanel();JPanel btnP6 = new JPanel();JPanel btnP7 = new JPanel();JPanel btnP8 = new JPanel();JPanel btnP9 = new JPanel(); JPanel btnP10 = new JPanel();JPanel btnP11 = new JPanel();JPanel btnP12 = new JPanel();btnP8.setLayout(new BorderLayout());btnP9.setLayout(new BorderLayout());btnP10.setLayout(new BorderLayout());btnP1.add(la1);btnP1.add(in1);btnP2.add(la2);btnP2.add(in2);btnP3.add(la3);btnP3.add(in3);btnP4.add(la4);btnP4.add(in4);btnP5.add(la5);btnP5.add(in5);btnP6.add(la6);btnP6.add(in6);btnP7.add(la7);btnP7.add(in7);btnP12.add(btn);btnP12.add(btn2);btnP8.add(btnP1,BorderLayout.PAGE_START);btnP8.add(btnP2,BorderLayout.CENTER);btnP8.add(btnP3,BorderLayout.PAGE_END);btnP9.add(btnP4,BorderLayout.PAGE_START);btnP9.add(btnP5,BorderLayout.CENTER);btnP10.add(btnP6,BorderLayout.PAGE_START);btnP10.add(btnP7,BorderLayout.CENTER);btnP10.add(btnP12,BorderLayout.PAGE_END);j.setLayout(new BorderLayout()); j.add(btnP8,BorderLayout.PAGE_START);j.add(btnP9,BorderLayout.CENTER);j.add(btnP10,BorderLayout.PAGE_END);j.setVisible(true); btn.addActionListener(e->{ String con1=in1.getText();String con2=in2.getText();String con3=in3.getText();String con4=in4.getText();String con5=in5.getText();String con6=in6.getText();String con7=in7.getText();String h=con1.replace(" ","");int y=chief.data.size();if(y==0&&g==3) {chief.data.add(new Staff(con1,con2,con3,con4,con5,con6,con7));queryStudent();in1.setText(""); in2.setText(""); in3.setText(""); in4.setText(""); in5.setText(""); in6.setText(""); in7.setText(""); }if(y==0&&g==2) {JOptionPane.showMessageDialog(null,"当前没有员工","警告",JOptionPane.ERROR_MESSAGE);}for (int i = 0; i < y; i++) {if(h.equals(chief.data.get(i).getId())&&g==2) {chief.data.set(i,new Staff(con1,con2,con3,con4,con5,con6,con7));queryStudent();in1.setText(""); in2.setText(""); in3.setText(""); in4.setText(""); in5.setText(""); in6.setText(""); in7.setText(""); break;} if(h.equals(chief.data.get(i).getId())&&g==3) {in1.setText(""); JOptionPane.showMessageDialog(null,"该工号用户已存在","消息提示",JOptionPane.ERROR_MESSAGE); break;}if(i==(chief.data.size()-1)&&g==3) {chief.data.add(new Staff(con1,con2,con3,con4,con5,con6,con7));queryStudent();in1.setText(""); in2.setText(""); in3.setText(""); in4.setText(""); in5.setText(""); in6.setText(""); in7.setText(""); }if(i==(chief.data.size()-1)&&g==2) {in1.setText(""); JOptionPane.showMessageDialog(null,"该工号用户不存在","警告",JOptionPane.ERROR_MESSAGE);} }});btn2.addActionListener(e->{j.dispose();});}public void queryStudent() { String[] thead = {"工号","姓名","性别","年龄","基本工资","津贴","综合工资"}; ArrayList<Staff> dataList =chief.data;String[][] tbody = list2Array(dataList);TableModel dataModel = new DefaultTableModel(tbody, thead);table.setModel(dataModel); }public String[][] list2Array(ArrayList<Staff> list){ String[][] tbody = new String[list.size()][7];for (int i = 0; i < list.size(); i++) {Staff staff = list.get(i);tbody[i][0] = staff.getId();tbody[i][1] = staff.getName();tbody[i][2] = staff.getSex();tbody[i][3] = staff.getAge()+"";tbody[i][4] = staff.getBasic();tbody[i][5] = staff.getAllowances();tbody[i][6] = staff.getInterated(); } return tbody;}
}
3 Password.java类
功能:包括确定登录用户密码是否正确,保存和读取文件三个功能。
代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map; public class Password {public boolean Pa(String content,String content2) {Map<String,String> map=new HashMap<String,String>();map.put("root", "123");String i=content.replace(" ","");String j=content2.replace(" ","");return j.equals(map.get(i)); }}
class FileSave{public static void save() throws IOException {File f=new File("Staff.txt");if(f.exists()) {f.delete();}f.createNewFile();FileWriter fw=null;fw=new FileWriter("Staff.txt");int i;for(i=0;i<chief.data.size();i++) {String tmp=new String(chief.data.get(i).getId()+"\t"+chief.data.get(i).getName()+"\t"+chief.data.get(i).getSex()+"\t"+chief.data.get(i).getAge()+"\t"+chief.data.get(i).getBasic()+"\t"+chief.data.get(i).getAllowances()+"\t"+chief.data.get(i).getInterated());fw.write(tmp+"\r\n");} fw.close();}
}class FileRead {public static void read() throws IOException { FileReader fr=null;int i,j;fr=new FileReader("Staff.txt");BufferedReader br=new BufferedReader(fr); String line=br.readLine(); while(line!=null) {if(line.equals("")) {line=br.readLine();continue;}Staff s=new Staff();String tmp[]=line.split("\\s"); for(j=0;j<tmp.length;j++) {switch(j) {case 0:s.setId(tmp[j]);break;case 1:s.setName(tmp[j]);break;case 2:s.setSex(tmp[j]);break;case 3:s.setAge(tmp[j]);break;case 4:s.setBasic(tmp[j]);break;case 5:s.setAllowances(tmp[j]);break;case 6:s.setInterated(tmp[j]);break;}}boolean flag=true;for(i=0;i<chief.data.size();i++) {if(s.getId().equals(chief.data.get(i).getId())) {flag=false;}}if(flag) {chief.data.add(s);}line=br.readLine();}fr.close();
}}
class Staff {private String id;private String name;private String sex;private String age;private String basic;private String allowances;private String interated;public Staff() {}public Staff(String id,String name,String sex,String age,String basic,String allowances,String interated) {this.id = id;this.name = name;this.sex = sex;this.age = age;this.basic = basic;this.allowances = allowances;this.interated = interated;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;} public String getAge() {return age;}public void setAge(String age) {this.age = age;} public String getBasic() {return basic;}public void setBasic(String basic) {this.basic = basic;}public String getAllowances() {return allowances;}public void setAllowances(String allowances) {this.allowances = allowances;}public String getInterated() {return interated;}public void setInterated(String interated) {this.interated = interated;}}
4 代码打包
点击蓝字源代码包
如链接失效可联系本人邮箱:768165925@qq.com
java职工工资管理系统(GUI+无数据库)相关推荐
- java学生信息管理系统(GUI+mysql数据库)
java学生信息管理系统+GUI界面布局+mysql数据库 代码已经更新!,重新设计了UI界面,代码之间的逻辑更加清晰 新的代码不需要手动建立数据库和表,全部由程序自动执行 用户名和密码为你数据库的用 ...
- JAVA计算机毕业设计职工工资管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
JAVA计算机毕业设计职工工资管理系统Mybatis+源码+数据库+lw文档+系统+调试部署 JAVA计算机毕业设计职工工资管理系统Mybatis+源码+数据库+lw文档+系统+调试部署 本源码技术栈 ...
- java高校职工工资管理论文_毕业设计论文java大学工资管理系统
毕业设计论文java大学工资管理系统 本 科 生 毕 业 论 文(设 计)题 目:大学工资管理系统 学 号: _________姓 名: ____ ___年 级: ___________学 院: __ ...
- 高校教师工资管理系统java_基于jsp的高校职工工资管理系统-JavaEE实现高校职工工资管理系统 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的高校职工工资管理系统, 该项目可用各类java课程设计大作业中, 高校职工工资管理系统的系统架构分为前后台两部分, ...
- 基于Java毕业设计职工工资管理系统源码+系统+mysql+lw文档+部署软件
基于Java毕业设计职工工资管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计职工工资管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开 ...
- 基于JAVA的工资管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA的工资管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA的工资管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...
- 数据库课程设计-职工工资管理系统
XXX大学 <数据库原理及应用课程设计>设计报告 题 目 职工工资管理系统 学生姓名 学 号 专业班级 ...
- java毕业设计基于web的学校工资管理系统Mybatis+系统+数据库+调试部署
java毕业设计基于web的学校工资管理系统Mybatis+系统+数据库+调试部署 java毕业设计基于web的学校工资管理系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S ...
- JAVA毕业设计工资管理系统计算机源码+lw文档+系统+调试部署+数据库
JAVA毕业设计工资管理系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计工资管理系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...
最新文章
- 内存都是由半导体器件构成的_开启5G新时代——XPS成像技术在半导体器件中的应用...
- web架构设计经验分享 (转)
- Spring 多视图配置
- EHCache 初步使用指南
- windows消息机制-4(MFC)
- 今天 ,给大家变个魔术!!!
- 使用WSO2 ESB进行邮件内容过滤
- RxJava学习(四利用RxJava打造自己的RxBus)
- 自学python-python自学难吗
- Python3学习阶段记录(Python3.8安装)
- 控制系统状态空间表达式的解(1)——求解线性定常系统零输入响应
- 资深3D游戏建模师的酸甜苦辣
- 计算机中运用的数学原理,生活中的数学原理
- CSS中如何设拉伸背景图片铺满屏幕
- 抽象代数 04.01 群的生成元组
- JavaSE02-JVM、JRE、JDK
- GPS模块HAL层分析和调试
- Android调微信小程序
- 客户满意度测评模型-「客户满意度指数模型」
- CBM 2099 OTG扩容U盘量产,亲自试验经验