Java简易图书管理系统开发全过程 (2)

今天我们继续来开发这个项目。

Java简易图书管理系统开发全过程 (2)

代码层级规划

根据代码的功能,我们需要提前把代码的包等结构确定下来。由于这个项目是小型的,所以可以分为以下几部分:

  • 前端窗体
  • 后端逻辑
  • 全局变量存放类
  • 工具类
  • 第三方外部库
  • 资源文件夹
    其中,本次用到的库有我自己编写的tools-v2.1.2.jar和Google的gson-2.8.0.jar。那么,以下就是项目目录:
    层级规划

正式开干

首先,我们需要一个登录窗口,输入管理员密码才能修改一些借书信息,例如借书还书,而非管理员只能查询自己的借书信息。登录窗口需要被Start主程序调用,并返回一个bool值,代表了是否是管理员登录。所以我们先创建Start类,只有这个了才能有main函数。
我们在com.rimu包下新建一个main包,Start类就在里面。
目前的Start类代码如下:
Start.java

package com.rimu.main;

public class Start {
	public static void main(String[] args) {
		
	}
}

然后,先写出登录窗口的GUI,再写登录的代码。我们需要把Login类放在GUI包里。
写一半突然想起来没放字体文件,直接从系统文件夹拷个微软雅黑放在resources/fonts/文件夹里。
Login.java

package com.rimu.GUI;

import com.rimu.main.Start;
import swing.FastJButton;
import swing.FastJLabel;
import value.Values;     //这三个是我自己的jar里的工具类

import javax.swing.*;

public class Login extends JFrame {
	JPanel panel = new JPanel(null);
	JTextField passwordF;
	public Login(){
		setBounds(Values.SW/2-250,Values.SH/2-200,500,300);
		setTitle("登录");
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		init();
	}
	private void init(){
		JLabel title = new FastJLabel(0,0,500,80,"登录",Values.FB);
		panel.add(title);
		JLabel text = new FastJLabel(10,130,70,40,"密码:",Values.FS);
		panel.add(text);

		passwordF = new JTextField();
		passwordF.setBounds(80,130,340,40);
		panel.add(passwordF);

		JButton adminB = new FastJButton(90,200,120,30,"管理员登录",Values.FSS);
		adminB.addActionListener(e -> Start.loginState = whenButtonPress(1));
		panel.add(adminB);
		JButton userB = new FastJButton(290,200,120,30,"普通登录",Values.FSS);
		userB.addActionListener(e -> Start.loginState = whenButtonPress(2));
		panel.add(userB);

		add(panel);
	}
	private int whenButtonPress(int num){
		int ans;
		if(num == 1){//点击了管理员登录
			if(passwordF.getText().equals(Start.password)){
				ans = 1;//代表管理员登录
			}else{
				ans = 0;//代表密码错误
			}
		}else if(num == 2){//点击了普通登录
			ans = 2;//代表普通登录
		}else{
			throw new IndexOutOfBoundsException();//虽然这么写但是一般(绝对)不会出现这种情况
		}
		//TODO 在这里启动主界面
		if(ans != 0) setVisible(false);
		return ans;
	}
}

相应的,Start类修改成这样:
Start.java

package com.rimu.main;

import com.rimu.GUI.Login;

public class Start {
	public static String password = "admin";
	public static int loginState;
	public static void main(String[] args) {
		Login login = new Login();
		login.setVisible(true);
	}
}

这个项目完成后,我会把源代码开源在GitHub上,到时候会把我自制的包一并放进去。

那么我们今天的研究就到这里,大家可以在评论区提出对我的代码的修改意见,谢谢大家。

相关文章:
Java简易图书管理系统开发全过程 (1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值