栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java职工管理系统/Java期末作业报告95分作业/GUI界面实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java职工管理系统/Java期末作业报告95分作业/GUI界面实现

PS:这是源代码和对应的截图,想要具体的源代码和步骤流程可在资源下载压缩包,里面有源代码,截图,每一个功能实现的过程,直接可作为Java前面作业的设计报告!关注新建的Java项目实战专栏,获取各种资料啊!

一:源代码如下

package worker;

import java.util.ArrayList;  //动态修改数组

public class chief {

   //用来存放员工信息的数组

   public static ArrayList data = new ArrayList();

   //主入口类

   public static void main(String[] args) {

      GUI n=new GUI("职工工资管理系统",450,300);

   }

package worker;

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 实例。

   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();

   //构造函数,s代表窗口主题,w代表窗口的宽度,h代表窗口的高度

   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);//设置标题

      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();

                //获取Staff.txt文件的路径,如果不存在就新建文件

                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{

   //new一个表格窗口对象

   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("  熊百涛 有限公司 ");

   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循环查询用户列表中与输入的查询条件相同的用户,相同的话将用户从列表中删除,没找到则提示用户不存在

            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 dataList =chief.data;

      String[][] tbody = list2Array(dataList);

      TableModel dataModel = new DefaultTableModel(tbody, thead);

      table.setModel(dataModel);

   }

  

   public String[][] list2Array(ArrayList 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;

   }

package worker;

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 map = new HashMap();

        //创建一个map对象,将账号作为key,密码作为value,把传进来的content和content2比较,是否正确

        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 {

        //文件名为staff.txt,地址是项目根目录

        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 + "rn");

        }

        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;

    }

二:流程截图

1:账号root,密码123,进入主界面

该主界面有两个职工信息为原先在导入前编辑的职工信息---

2:增加职工信息

添加成功

3:删除职工信息

删除成功

4:修改职工信息(只需输入你要修改的职工工号,便可以对该职工进行整体修改)

修改成功

5:查找职工信息

查找成功

6:帮助(不明白时可以点击获取帮助)

7:退出系统

查看staff.txt信息

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/776971.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号