Java图形用户界面--高校设备管理系统第一版

图形用户界面(Graphics User Interface,简称GUI)

是用户与程序交互的窗口,也就是我们现实世界电子产品中可以看到的界面,比命令行的界面更加清晰易懂。

目录

系统功能

界面设计

1.login_GUI包中代码

2.function_GUI包中代码(需要数据库的连接,目前未连接)

系统实现截图 


  • 系统功能

1.系统角色功能

本系统有两种角色:高校设备管理员,高校领导。详细划分如下:
1)设备管理员:负责本系统中添加和管理数据,例如新设备的添加,设备信息的删除跟修改操作,此外还有设备的维修信息登记,设备的报废信息登记等。
2)领导:根据需要,可以查询该系统中所有的设备信息。

2.系统功能模块

本系统主要分为下面几个模块,各个子模块功能需求如下:

查询设备模块:设备管理员和领导可以查看所有设备的信息。

添加设备模块:设备管理员可以添加新设备的各项信息,同时还可以查看历史添加记录。

管理设备模块:设备管理员可以对设备的信息进行删除跟修改。

维修设备模块:设备管理员可以添加需要维修的设备的信息,同时还可以查看历史维修记录。

报废设备模块:设备管理员可以添加报废设备的信息,还可以查看历史报废记录。

帮助模块:该模块主要向用户提供系统操作说明。

高校设备管理系统简略功能模块图(帮助可删除):

3.系统功能流程

根据该系统相关功能,则有以下系统功能流程:

(1)设备管理员对新购进的设备进行新设备入库登记,登记完成即可投入所需设备部门使用。得到设备后各部门就可将设备分配给教工进行使用。

(2)设备管理员可以对当前设备状况进行修改,即可对设备状况进行调整。

(3)当有设备损坏需要维修时,设备管理员便对所需维修设备信息进行登记,然后将其设备状况改为维修。设备维修完成后,交还原部门,由设备管理员进行登记并将设备状态改为正常。。

(4)当有设备报废时,设备管理员便对报废设备信息进行登记,然后将其设备状况改为报废。

4.系统数据

(1)查询设备模块数据需求

该模块主要管理设备的基本信息,需要表示的是设备信息的数据,应包含的数据项:设备编号,设备类型,设备名称,生产日期,生产厂家,购买日期,购买单价,数量,所属部门,设备状况,管理人员。

(2)添加设备模块数据需求

该模块主要管理入库的新设备信息,需要表示的是新设备的各项数据,应包含的数据项:设备编号,设备类型,设备名称,生产日期,生产厂家,购买日期,购买单价,购买登记人,数量,所属部门。

(3)管理设备模块数据

该模块主要管理设备的基本信息,需要表示的是被管理后设备的基本信息,应包含的数据项:设备编号,设备类型,设备名称,生产日期,生产厂家,购买日期,购买单价,数量,所属部门,设备状况。

(4)维修设备模块数据分析

该模块主要管理维修设备的信息,需要表示的是维修设备信息的数据,应包含的数据项:设备编号,设备类型,设备名称,维修数量,维修登记人,维修金额,维修日期,维修厂家。

(5)报废设备模块数据

该模块主要管理报废设备的信息,需要表示的是报废设备信息的数据,应包含的数据项:设备编号,设备类型,设备名称,报废数量,报废登记人,报废日期,原有数量。  

未安装Java以及eclipse的可以参考这篇博文完成下载安装

https://i.youkuaiyun.com/#/user-center/collection-list?type=1&folder=7796579&key=16 

      该管理系统是我在学习Java一个月的过程中写的,其中还有一些功能未完成,可自行尝试完成(由于我本人也是新手,若注释、说明等地方有误望指出,一起在评论区讨论并解决问题)。由于刚开始什么都不会,就跟着课本上的代码练;在了解一些基本功能及关键字后就试着写第一版高校设备管理系统,浪费了大量时间还不会连数据库,只好把基本界面写出来,但是无法实现其具体功能😔。

简略第一版

适合初级新手,如调界面大小,宽度等的调试练习)

  • 界面设计

  • 1.login_GUI包中代码

(1)public class LoginDialog类(登录界面)

package login_GUI;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPasswordField;

public class LoginDialog extends JDialog {

// 登录对话款类

JLabel username1;

JLabel password1;

JComboBox username;

JComboBox password;

JButton loginBtn;

JButton cancelBtn;

LoginDialog() {

// 设置登录对话框并设置位置及大小,模态

setTitle("用户登陆");

setBounds(500, 250, 200, 120);

setDefaultCloseOperation(HIDE_ON_CLOSE);

setLayout(null);

setModal(true);

createGUIElements();

}

void createGUIElements() {

// 创建用户账号与密码标签

username1 = new JLabel("用户账号");

username1.setBounds(20, 10, 60, 20);

this.add(username1);

password1 = new JLabel("密钥");

password1.setBounds(20, 32, 50, 20);

this.add(password1);

// 创建用户名与密钥输入组件并赋初值

username = new JComboBox();

username.addItem("110232334");// 领导账号

username.addItem("239342252");// 设备管理员账号

username.setBounds(75, 10, 105, 20);

this.add(username);

password = new JComboBox();

password.addItem("133242");// 领导密钥

password.addItem("223232");// 设备管理员密钥

password.setBounds(75, 32, 105, 20);

this.add(password);

// 创建登录与退出按钮并添加事件

loginBtn = new JButton("登录");

loginBtn.setBounds(25, 60, 60, 20);

add(loginBtn);

loginBtn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

login();

}// 方法结束

});

cancelBtn = new JButton("退出");

cancelBtn.setBounds(110, 60, 60, 20);

add(cancelBtn);

cancelBtn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

logout();

}

});

}

void login() {

// 处理登录按钮事件

String accout = username.getSelectedItem().toString();

String pwd = password.getSelectedItem().toString();

// 如果用户账号和密钥正确,则隐藏登录对话框,显示属于该登录用户的界面

if (accout.equals("110232334") && pwd.equals("133242")) {

setVisible(false);

showLeaderWindow();// 显示领导可用窗口

}

else if(accout.equals("239342252")&&pwd.equals("223232")) {

setVisible(false);

showEquipmentMannagerWinsow();

}

else {

JOptionPane.showMessageDialog(this, "用户账号是:" + accout + "\n密钥是:" + pwd);

}

}

void logout() {

// 处理退出按钮事件

int ret = JOptionPane.showConfirmDialog(this, "选择是,取消登录", "取消登录", JOptionPane.YES_NO_OPTION);

if (ret == JOptionPane.YES_OPTION) {

dispose();

}

}

void showLeaderWindow() {

// 显示领导可用功能窗口

LeaderWindow frm = new LeaderWindow();

frm.setVisible(true);

}

void showEquipmentMannagerWinsow() {

// 显示设备管理员可用功能窗口

EquipmentMannagerWindow frm = new EquipmentMannagerWindow();

frm.setVisible(true);

}

}// 结束LoginDialog类

(2)public class University_equipment_mannage类(登录类别界面,包含主函数)

package login_GUI;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class University_equipment_mannage {

public static void main(String[] args) {

// TODO Auto-generated method stub

final JFrame frm = new JFrame("用户登录类别选择");

frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frm.setLayout(null);

// 创建标签组件,设置位置及大小及字体

JLabel label = new JLabel("欢迎登录高校设备管理器");

label.setBounds(60, 10, 270, 100);

label.setFont(new Font("", Font.BOLD, 22));

label.setHorizontalAlignment(JLabel.CENTER);

// 创建按钮对象

JButton btn1 = new JButton("领导登录");

JButton btn2 = new JButton("设备管理员登录");

btn1.setBounds(60, 100, 100, 30);

btn2.setBounds(200, 100, 150, 30);

frm.add(label);

frm.add(btn1);

frm.add(btn2);

// 创建按钮的监听器并注册,参数为事件处理者对象

// ButtonHandler btnHandler = new ButtonHandler();

//btn1.addActionListener(btnHandler);// 与单击事件相关的授权处理的方法

btn1.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

LoginDialog Log=new LoginDialog();

Log.setVisible(true);

frm.setVisible(false);

}

});

btn2.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

LoginDialog Log=new LoginDialog();

Log.setVisible(true);

frm.setVisible(false);

}

});

frm.setBounds(400, 200, 400, 200);

frm.setVisible(true);

}

}

(3)public class LeaderWindow类(领导登录界面)

package login_GUI;

import function_GUI.HopeDirection;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.Action;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class LeaderWindow extends JFrame {

// 领导功能窗口

LeaderWindow() {

JFrame frm = new JFrame("高校设备管理器");

frm.setDefaultCloseOperation(EXIT_ON_CLOSE);

frm.setLayout(null);// 设置为不使用布局管理器

// 创建标签组件,设置位置及大小及字体

JLabel label = new JLabel("欢迎使用高校设备管理器");

label.setBounds(50, 5, 300, 100);

label.setFont(new Font("", Font.BOLD, 22));

label.setHorizontalAlignment(JLabel.CENTER);

// 创建按钮对象

JButton btn1 = new JButton("查询设备");

JButton btn2 = new JButton("帮助");

btn1.setBounds(80, 100, 120, 30);

btn2.setBounds(250, 100, 60, 30);

frm.add(btn1);

frm.add(btn2);

frm.add(label);

// 创建按钮的监听器并注册,参数为事件处理者对象

EquipmentQuery query = new EquipmentQuery();

btn1.addActionListener(query);// 与单击事件相关的授权处理的方法

// frm.setBounds(400, 200, 400, 200);

// frm.setVisible(true);

Help help = new Help();

btn2.addActionListener(help);

frm.setBounds(400, 200, 400, 200);

frm.setVisible(true);

}

}

class EquipmentQuery implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

System.out.println("设备查询");

}

}

class Help implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

new HopeDirection();

}

}

(4)public class EquipmentMannagerWindow类(设备管理员登录界面)

package login_GUI;

import function_GUI.ManagementEquipment;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class EquipmentMannagerWindow extends JFrame {

// 设备管理员功能窗口

EquipmentMannagerWindow() {

JFrame frm1 = new JFrame("高校设备管理器");

frm1.setDefaultCloseOperation(EXIT_ON_CLOSE);

frm1.setLayout(null);// 设置为不使用布局管理器

// 创建标签组件,设置位置及大小及字体

JLabel label = new JLabel("欢迎使用高校设备管理器");

label.setBounds(50, 10, 300, 22);

label.setFont(new Font("", Font.BOLD, 22));

label.setHorizontalAlignment(JLabel.CENTER);

// 创建按钮对象

JButton btn1 = new JButton("查询设备");

JButton btn2 = new JButton("维修设备");

JButton btn3 = new JButton("添加设备");

JButton btn4 = new JButton("报废设备");

JButton btn5 = new JButton("管理设备");

JButton btn6 = new JButton("帮助");

btn1.setBounds(60, 70, 120, 30);

btn2.setBounds(240, 70, 120, 30);

btn3.setBounds(60, 120, 120, 30);

btn4.setBounds(240, 120, 120, 30);

btn5.setBounds(60, 170, 120, 30);

btn6.setBounds(240, 170, 60, 30);

frm1.add(btn1);

frm1.add(btn2);

frm1.add(btn3);

frm1.add(btn4);

frm1.add(btn5);

frm1.add(btn6);

frm1.add(label);

// 创建按钮的监听器并注册,参数为事件处理者对象

EquipmentQuery query = new EquipmentQuery();

btn1.addActionListener(query);// 与单击事件相关的授权处理的方法

// frm.setBounds(400, 200, 400, 200);

// frm.setVisible(true);

Help help = new Help();

btn6.addActionListener(help);

// frm.setBounds(400, 200, 400, 200);

// frm.setVisible(true);

EquipmentMaintenance equipM= new EquipmentMaintenance();//设备维修

btn2.addActionListener(equipM);

// frm.setBounds(400, 200, 400, 200);

// frm.setVisible(true);

EquipmentAdd add = new EquipmentAdd();//设备添加

btn3.addActionListener(add);

// frm.setBounds(400, 200, 400, 200);

// frm.setVisible(true);

EquipmentDestroy destroy = new EquipmentDestroy();//设备报废

btn4.addActionListener(destroy);

// frm.setBounds(400, 200, 400, 200);

// frm.setVisible(true);

EquipmentMannage mannage = new EquipmentMannage();//设备报废

btn5.addActionListener(mannage);

frm1.setBounds(400, 200, 400, 300);

frm1.setVisible(true);

}

}

class EquipmentMaintenance implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

System.out.println("设备维修");

}

}

class EquipmentAdd implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

System.out.println("设备添加");

}

}

class EquipmentDestroy implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

System.out.println("设备报废");

}

}

class EquipmentMannage implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

new ManagementEquipment();

}

}

2.function_GUI包中代码(需要数据库的连接,目前未连接)

(1)public class ManagementEquipment类(设备管理员对设备进行管理的界面)

package function_GUI;

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

public class ManagementEquipment{

JFrame frm=new JFrame("设备管理");

//创建面板并放在窗体的上半部分

JPanel topPanel=new JPanel(new FlowLayout());

//创建面板并放在窗体的下半部分,用于显示数据库表

JPanel bottomPanel=new JPanel();

JLabel lab_id;

JLabel lab_type;

JLabel lab_name;

JLabel lab_state;

JLabel lab_department;

JButton deleteButton;

JButton alterButton;

JButton viewButton;

public ManagementEquipment() {

frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//创建网格布局管理器

GridLayout gridLayout=new GridLayout(2,1);

frm.setLayout(gridLayout);

//创建5个组件并添加到容器中

lab_id=new JLabel("设备编号");

lab_id.setBounds(0,5,20,20);

lab_type=new JLabel("设备类型");

lab_type.setBounds(120,5,20,20);

lab_department=new JLabel("所属部门");

lab_department.setBounds(220,5,20,20);

lab_name=new JLabel("设备名称");

lab_name.setBounds(0,30,20,20);

lab_state=new JLabel("设备状态");

lab_state.setBounds(120,30,20,20);

deleteButton=new JButton("删除");

alterButton=new JButton("修改");

viewButton=new JButton("查看");

management();

frm.add(topPanel);

frm.add(bottomPanel);

frm.setBounds(250,250,600,400);

frm.setVisible(true);

}

void management() {

/*

 * 上半部面板

 */

//创建对应的5个输入框

JTextField input_type=new JTextField();

input_type.setEditable(true);

input_type.setHorizontalAlignment(lab_type.LEFT);

input_type.setColumns(10);

JTextField input_id=new JTextField();

input_id.setEditable(true);

input_id.setHorizontalAlignment(lab_id.LEFT);

input_id.setColumns(10);

JTextField input_department=new JTextField();

input_department.setEditable(true);

input_department.setHorizontalAlignment(lab_department.LEFT);

input_department.setColumns(10);

JTextField input_name=new JTextField();

input_name.setEditable(true);

input_name.setHorizontalAlignment(lab_name.LEFT);

input_name.setColumns(10);

JTextField input_state=new JTextField();

input_state.setEditable(true);

input_state.setHorizontalAlignment(lab_state.LEFT);

input_state.setColumns(10);

//面板中显示标签、输入框

topPanel.add(lab_id);

topPanel.add(input_id);

topPanel.add(lab_type);

topPanel.add(input_type);

topPanel.add(lab_department);

topPanel.add(input_department);

topPanel.add(lab_name);

topPanel.add(input_name);

topPanel.add(lab_state);

topPanel.add(input_state);

//添加按钮并注册事件

topPanel.add(deleteButton);

topPanel.add(viewButton);

topPanel.add(alterButton);

/*

 * 下半部面板

 */

}

}

(2)public class HopeDirection类(帮助界面,一些操作提示)

package function_GUI;

import java.awt.Font;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTextArea;

public class HopeDirection {

JFrame frm;

JLabel lab;

public HopeDirection() {

// TODO Auto-generated constructor stub

frm=new JFrame("使用说明");

frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frm.setLayout(null);

helpDirection();

frm.add(lab);

frm.setBounds(150,200,400,300);

frm.setVisible(true);

}

public void helpDirection() {

lab=new JLabel("系统使用说明");

lab.setBounds(100,0,200,40);

lab.setFont(new Font("",Font.BOLD,22));

lab.setHorizontalAlignment(JLabel.CENTER);

final JTextArea textarea=new JTextArea("需要查询请选择查询按钮,可查看所有正常设备的信息\n\n"

+ "需要管理请选择管理设备按钮,可对设备的信息进行删除,同时可对当前\n设备的状态进行修改\n\n"

+"需要添加请选择添加设备按钮,同时可查看历史添加记录,此外还有录入\n功能,即可将新设备信息添加进总设备信息中\n\n"

+ "需要维修请选择维修设备按钮,同时可查看历史维修记录\n\n"

+"需要报废请选择报废设备按钮,同时可查看历史报废记录,还可以统计设\n备的报废率\n");

textarea.setBounds(2,60,400,150);

textarea.setEditable(false);

textarea.setColumns(152);

frm.add(textarea);

}

}

以下是还未实现的界面

  1. public class ScrapEquipment类(报废设备界面)
  2. Public class AddEquipment类(添加设备界面)
  3. Public class MaintainEquipment类(维修设备界面)
  4. Public class QueryEquipment类(查询设备界面)

系统实现截图 

(1)账号登陆(两种身份)

以1开头的是领导账号和密码,以2开头的是设备管理员的账号和密码(可自己设定)

  

(2)领导使用界面(两种功能)

(3)设备管理员界面(六种功能)

(4)管理设备界面

(5)帮助界面

      由于该界面过于粗糙,同时是我刚开始写界面时做的故这里不做过多解释(好像也不会解释哈😀),其他界面可自己尝试完成,就当作练习。接下来我将重点聊聊第二版(进行了大量改写,布局清晰、代码结构分明方便和我一样的同学进行学习并掌握),第一版和第二版合在一起有些长,不方便阅读,故我将第二版放在另一篇博客中,看完第一版的同学可点击本段第二行的蓝色字体“第二版”进入第二版的学习。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值