java职工工资管理系统(GUI+无数据库)
一、说明第一次发帖,有不对的地方欢迎指出:lol当年大一的课程设计,欢迎大家参考借鉴!
二、系统实现
1.登录界面
创建容器,把相应得组件设置后放入容器。如:密码、文本框、用户、按钮等组件。
设置组件位置使其更加美观(如下图)。账号:root 密码:123
https://img-blog.csdnimg.cn/20201013223120715.png?
2.系统界面
在查询窗口输入工号,监听模块识别并在文件内查找与工号相同的员工输出在主界面中。
若无此工号员工,则提示员工不存在。以下为界面布局代码和图片(如下图)
https://img-blog.csdnimg.cn/20201013223324741.png?
3.大致流程图
https://img-blog.csdnimg.cn/2020101322350328.png?
三、测试情况
1.登录界面测评情况
https://img-blog.csdnimg.cn/20201013223733936.jpg?
2.主界面测评情况
https://img-blog.csdnimg.cn/20201013223828412.png?
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;
for (int i = 0; i < chief.data.size(); i++) {
if(h.equals(chief.data.get(i).getId())) {
tbody=chief.data.get(i).getId();
tbody=chief.data.get(i).getName();
tbody=chief.data.get(i).getSex();
tbody=chief.data.get(i).getAge()+"";
tbody=chief.data.get(i).getBasic();
tbody=chief.data.get(i).getAllowances();
tbody=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;
for (int i = 0; i < list.size(); i++) {
Staff staff = list.get(i);
tbody = staff.getId();
tbody = staff.getName();
tbody = staff.getSex();
tbody = staff.getAge()+"";
tbody = staff.getBasic();
tbody = staff.getAllowances();
tbody = 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);
break;
case 1:
s.setName(tmp);
break;
case 2:
s.setSex(tmp);
break;
case 3:
s.setAge(tmp);
break;
case 4:
s.setBasic(tmp);
break;
case 5:
s.setAllowances(tmp);
break;
case 6:
s.setInterated(tmp);
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;
}
}
五、获取源码
链接:https://pan.baidu.com/s/1Xrkiu6stQfTlIt5bzSIRKg
提取码:k7h5
支持一下 支持一下 学习一下了 老大,链接失效了! 链接失效了,如何用? 楼主,重新发一下链接,非常感谢! 支持一下 牛蛙牛蛙,赞一下。 很经典的一个系统设计啊,支持支持!