Git Product home page Git Product logo

java-course-design's Introduction

帮助文档(GUI作业)

姓名 学号
FAWC-bupt

目录

1. 软件亮点

2. 开发环境与运行环境

3. 使用说明

4. (函数)数据结构


软件亮点

本软件实现了周薪雇员(SalariedEmployee)、时薪雇员(HourlyEmployee)、提成雇员(CommissionEmployee)、基本+提成雇员(BasePlusCommissionEmployee)全部四种不同类型员工的信息录入查询删除功能,并且拥有 按键菜单 两种不同的操作方式供使用者选择。

在代码结构上,如下列代码所示,尽量不利用try-catch语句而是利用效率更高的判断方保证软件的鲁棒性,例如用正则表达式判断输入字符串的格式是否正确,并且大量采用 Lambda 表达式实现控件事件,简化代码结构使之更加易读。同时,大面积封装了具体功能的代码块为相应的函数或添加region-endregion语句,并辅以一定的注释,使得代码更简洁美观。

温馨提示 Lambda 表达式是Java 8的新特性,因此请务必保证您的JDK版本至少为8.0

this.getEmployeeConfirm().addActionListener(event -> {
    int flag = 1;
    for (int i = 0; i < this.getEmployeeInfo().length - 1; i++) {
        if (this.getEmployeeInfo()[i].isEditable() &&
                !this.getEmployeeInfo()[i].getText().matches("^[0-9]+(\\.?)[0-9]*$")) {
            flag = 0;
            break;
        }
    }
...

类文件树如下:

.
├── README.md
├── GUI_self.java
├── Main.java
├── Factory.java
└── Employee.java
    ├── SalariedEmployee.java
    ├── HourlyEmployee.java
    └── CommissionEmployee.java
        └── BasePlusCommissionEmployee.java

开发环境与运行环境

JDK版本:12

JVM版本:OpenJDK 64-Bit Server VM by JetBrains s.r.o.

IDE:IntelliJ IDEA 2020.1.3 (Ultimate Edition) on Windows 10


使用说明

按键模式

主界面下方的两个按键即按键模式输入。

点击员工信息录入将弹出选择员工类型的对话框,选择对应员工后点击确认,相应的员工参数将可供编辑。在输入员工参数后,请务必点击输入栏下方的确认键。在录入成功的提示框出现后,员工信息已经加载至内存,您可以在主界面上方的文本区域查看已添加的员工基本身份信息。

点击员工工资查询将弹出显示所有员工工资信息的对话框。点击确认即可关闭。

菜单模式

主界面左上方即菜单模式输入。

点击信息录入一级菜单栏,可以选择四种不同的员工类型。选择了欲添加的员工类型后即可在下方编辑添加的员工属性,与按键模式相同。

点击员工删除一级菜单栏,可以选择两种不同的员工删除方式。若选择按姓名删除,将会弹出下拉列表对话框,可选择欲删除的员工的姓名并点击确认即可完成删除操作。类似地,若选择按社保号删除,将会弹出下拉列表对话框,可选择欲删除的员工的社保号。当您未添加任何员工信息时,删除操作无效并会弹出提示对话框。

点击查询一级菜单栏,软件将会模拟用户点击员工工资查询按钮,因此二者得到的结果完全相同。

点击关于一级菜单栏,选择帮助文档,可以在PDF格式查看本文档。选择作者,可以查看本软件作者信息。

温馨提示 帮助文档的相对路径指向GUI_self.class文件而非GUI_self.java文件,因此请在工程文件中运行时选择该选项


(函数)数据结构

本部分将主要介绍GUI_self.java中的函数关系。

GUI_self.java
└── GUI_self()
    └── setupUI()
        ├── FunctionSelection()
        ├── WelcomeTitle()
        |   └── getFont()
        ├── InfoHandler()
        |   └── EmployeeInfoInit()
        ├── ShowAddedEmployee()
        |   └── getFont()
        ├── ActionHandler()
        |   └── SetInfoEditable()
        └── MenuHandler()
            └── SetInfoEditable()

setupUI(): GUI界面初始化函数,必须在构造方法中调用。

FunctionSelection(): 主界面下方两个主要按钮的样式设计。

WelcomeTitle(): 主界面上方欢迎标题的样式设计。

InfoHandler(): 主界面**的用户信息输入模块,配合EmployeeInfoInit()函数控制其初始化内容。

ShowAddedEmployee(): 主界面上方的文本块,主要功能为实时显示已经存入内存的员工信息。

ActionHandler(): 非菜单方式的事件响应模块,配合SetInfoEditable()函数控制信息输入模块的可编辑属性。

MenuHandler(): 菜单方式的样式设计和事件响应模块,配合SetInfoEditable()函数控制信息输入模块的可编辑属性。

java-course-design's People

Contributors

fawc438 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.