一、说明

前几个星期刚结束的大一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+无数据库)相关推荐

  1. java学生信息管理系统(GUI+mysql数据库)

    java学生信息管理系统+GUI界面布局+mysql数据库 代码已经更新!,重新设计了UI界面,代码之间的逻辑更加清晰 新的代码不需要手动建立数据库和表,全部由程序自动执行 用户名和密码为你数据库的用 ...

  2. JAVA计算机毕业设计职工工资管理系统Mybatis+源码+数据库+lw文档+系统+调试部署

    JAVA计算机毕业设计职工工资管理系统Mybatis+源码+数据库+lw文档+系统+调试部署 JAVA计算机毕业设计职工工资管理系统Mybatis+源码+数据库+lw文档+系统+调试部署 本源码技术栈 ...

  3. java高校职工工资管理论文_毕业设计论文java大学工资管理系统

    毕业设计论文java大学工资管理系统 本 科 生 毕 业 论 文(设 计)题 目:大学工资管理系统 学 号: _________姓 名: ____ ___年 级: ___________学 院: __ ...

  4. 高校教师工资管理系统java_基于jsp的高校职工工资管理系统-JavaEE实现高校职工工资管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的高校职工工资管理系统, 该项目可用各类java课程设计大作业中, 高校职工工资管理系统的系统架构分为前后台两部分, ...

  5. 基于Java毕业设计职工工资管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计职工工资管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计职工工资管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开 ...

  6. 基于JAVA的工资管理系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA的工资管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA的工资管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  7. 数据库课程设计-职工工资管理系统

    XXX大学                                        <数据库原理及应用课程设计>设计报告 题   目 职工工资管理系统 学生姓名 学   号 专业班级 ...

  8. java毕业设计基于web的学校工资管理系统Mybatis+系统+数据库+调试部署

    java毕业设计基于web的学校工资管理系统Mybatis+系统+数据库+调试部署 java毕业设计基于web的学校工资管理系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S ...

  9. JAVA毕业设计工资管理系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计工资管理系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计工资管理系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

最新文章

  1. 内存都是由半导体器件构成的_开启5G新时代——XPS成像技术在半导体器件中的应用...
  2. web架构设计经验分享 (转)
  3. Spring 多视图配置
  4. EHCache 初步使用指南
  5. windows消息机制-4(MFC)
  6. 今天 ,给大家变个魔术!!!
  7. 使用WSO2 ESB进行邮件内容过滤
  8. RxJava学习(四利用RxJava打造自己的RxBus)
  9. 自学python-python自学难吗
  10. Python3学习阶段记录(Python3.8安装)
  11. 控制系统状态空间表达式的解(1)——求解线性定常系统零输入响应
  12. 资深3D游戏建模师的酸甜苦辣
  13. 计算机中运用的数学原理,生活中的数学原理
  14. CSS中如何设拉伸背景图片铺满屏幕
  15. 抽象代数 04.01 群的生成元组
  16. JavaSE02-JVM、JRE、JDK
  17. GPS模块HAL层分析和调试
  18. Android调微信小程序
  19. 客户满意度测评模型-「客户满意度指数模型」
  20. CBM 2099 OTG扩容U盘量产,亲自试验经验

热门文章

  1. python爬虫网站 词云_Python爬虫之爬取情话网站并绘制词云
  2. Excel2LaTex打开时office禁用宏
  3. GitCode使用教程
  4. bitnami redmine mysql 密码_Linux使用bitnami安装redmine的图文教程
  5. Python语法第六讲 for循环
  6. Fidder常见问题
  7. CLion 2022,CMake构建进度
  8. java对账系统设计_聊聊对账系统的设计方案
  9. 使用pinyin4j获取汉字拼音首字母或全拼
  10. 【技术交流】CH340与CH341的常见问题解答