- 实体类
- 工具类
- 界面类
主类Main
package 工具类;
import 界面类.MyFrame;
public class Main {
public static void main(String[] args) {
new MyFrame().init();
}
}
MyFrame类
package 界面类;
import 工具类.*;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
/*
* 初始界面
* */
public class MyFrame extends JFrame {
public static JFrame f = new JFrame("图书馆管理系统");
public static JButton but3 = new JButton("重置");
public static void init() {
//主键预设
//b1为最大的容器,b2,b3,b4,b5分别为横向排列各模块的容器
Box b1 = Box.createVerticalBox();
Box b2 = Box.createHorizontalBox();
Box b3 = Box.createHorizontalBox();
Box b4 = Box.createHorizontalBox();
Box b5 = Box.createHorizontalBox();
//预设字体及大小
Font f1 = new Font("楷体", Font.PLAIN, 30);
Font f2 = new Font("楷体", Font.PLAIN, 35);
Font f3 = new Font("楷体", Font.PLAIN, 25);
//创建界面中各个组件
JLabel j1 = new JLabel("欢迎图书管理系统", JLabel.CENTER);
JLabel user = new JLabel("账号:", JLabel.CENTER);
JLabel passwd = new JLabel("密码:", JLabel.CENTER);
JButton but1 = new JButton("登录");
JButton but2 = new JButton("取消");
// JButton but3 = new JButton("重置");
JButton but4 = new JButton("注册");
JTextField in1 = new JTextField(20);
JPasswordField in2 = new JPasswordField(20);
//主页面背景设置
JPanel panel = null;
try {
panel = new BackGroundPanel(ImageIO.read(new File("D:\\图片\\e二次元\\20221022.3.png")));
} catch (IOException e) {
e.printStackTrace();
}
//第一个输入框监听键盘回车事件,并检测是否输入了账号和密码
in1.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
//判断是否为回车符
if(e.getKeyChar() == KeyEvent.VK_ENTER){
//如果两个文本框为空,提示输入账号和密码,若不为空则创建验证界面
if (in1.getText().length() == 0 && in2.getText().length() == 0)
JOptionPane.showMessageDialog(null, "请输入账号和密码", "提示", JOptionPane.INFORMATION_MESSAGE);
else if (in2.getText().length() == 0) {
// JOptionPane.showMessageDialog(null, "请输入密码", "提示", JOptionPane.INFORMATION_MESSAGE);
in2.requestFocus();
}else{
}
}
}
});
//第二个输入框监听回车事件,并检测是否输入了账号和密码
in2.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
//判断按下的按键是否为回车键
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
//如果两个文本框为空,提示输入账号和密码,若不为空则创建验证界面
if (in1.getText().length() == 0 && in2.getText().length() == 0)
JOptionPane.showMessageDialog(null, "请输入账号和密码", "提示", JOptionPane.INFORMATION_MESSAGE);
else if (in2.getText().length() == 0)
JOptionPane.showMessageDialog(null, "请输入密码", "提示", JOptionPane.INFORMATION_MESSAGE);
else if (in1.getText().length() == 0)
JOptionPane.showMessageDialog(null, "请输入账号", "提示", JOptionPane.INFORMATION_MESSAGE);
else{
but1.doClick();
}
}
}
});
//登录按钮的点击事件,两个输入框不为空则判断账号密码
JPanel finalPanel = panel;
but1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//如果两个文本框为空,提示输入账号和密码,若不为空则创建验证界面
if (in1.getText().length() == 0 || in2.getText().length() == 0)
JOptionPane.showMessageDialog(null, "请将账号和密码输入完整",
"提示", JOptionPane.INFORMATION_MESSAGE);
else {
// AverageUser.Subpage();
String name = in1.getText();//获取账号
char[] chars = in2.getPassword();//获取密码
String password = new String(chars);
int i = Database.QueryUser(name ,password);//获取用户的权限
System.out.println(i);
switch(i){
case 0 :
JOptionPane.showMessageDialog(finalPanel,"登录成功!","通知",JOptionPane.INFORMATION_MESSAGE);
AverageUser.Subpage();//普通用户的界面
Head.UserName = name;
f.setVisible(false);
break;//普通用户登录页面
case 1:
JOptionPane.showMessageDialog(finalPanel,"登录成功!","通知",JOptionPane.INFORMATION_MESSAGE);
Admin.Subpage();//管理员的界面
SwingUtilities.updateComponentTreeUI(MyFrame.f);
Head.UserName=name;
break;//管理员用户登录页面
default:
JOptionPane.showMessageDialog(finalPanel, "密码或者账户输入错误", "警告", JOptionPane.WARNING_MESSAGE);
}
}
}
});
//注册按钮的点击事件,弹出注册界面
but4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//跳入注册 连接数据库 弹出注册界面
Database.CreateAccount();
register.Subpage();
}
});
//重置按钮设置
but3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 点击重置按钮后,清空文本框和密码框
in1.setText("");
in2.setText("");
}
});
//取消的按钮事件,点击退出程序
but2.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
//代码块 组件安装
//添加首行欢迎词
b1.add(Box.createVerticalStrut(50));
j1.setFont(f2);
j1.setForeground(Color.pink);
b5.add(j1);
b1.add(b5);
//添加中部登录账号及密码的文字和输入框
b1.add(Box.createVerticalStrut(60));
b2.add(Box.createHorizontalStrut(120));
user.setFont(f1);
user.setForeground(Color.black);
b2.add(user);
in1.setFont(f3);
b2.add(in1);
b2.add(Box.createHorizontalStrut(130));
b1.add(b2);
b1.add(Box.createVerticalStrut(40));
b3.add(Box.createHorizontalStrut(120));
passwd.setFont(f1);
passwd.setForeground(Color.black);
b3.add(passwd);
b3.add(in2);
b3.add(Box.createHorizontalStrut(130));
b1.add(b3);
//下端两个按钮添加至垂直容器
b1.add(Box.createVerticalStrut(40));
b4.add(Box.createHorizontalStrut(100));
but1.setFont(f3);
but1.setToolTipText("点击登录");
b4.add(but1);
//重置按钮
b4.add(Box.createHorizontalStrut(40));
but3.setFont(f3);
but3.setToolTipText("点击重置");
b4.add(but3);
//注册按钮
b4.add(Box.createHorizontalStrut(40));
but4.setFont(f3);
but4.setToolTipText("点击重置");
b4.add(but4);
//退出按钮
b4.add(Box.createHorizontalStrut(40));
but2.setFont(f3);
but2.setToolTipText("点击退出系统");
b4.add(but2);
b4.add(Box.createHorizontalStrut(100));
b1.add(b4);
b1.add(Box.createVerticalStrut(100));
//设置窗口图标
try {
f.setIconImage(ImageIO.read(new File("D:\\图片\\卡通\\R-C (4).jpg")));
} catch (IOException e) {
e.printStackTrace();
}
//竖直排列的box容器添加至自定义背景的panel容器中,并将panel添加至窗体容器f中
panel.add(b1);
f.add(panel);
//设置不可缩放、窗体容器大小、居中排列、显示窗体、退出时结束进程
f.setResizable(false);
f.setSize(700, 500);
f.setLocationRelativeTo(null);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Book类
package 实体类;
import java.util.Date;
public class Book {
private int id;//图书序号
private String author;//作者
private String name;//书名
private String pages;//出版社
private String price;//价格
private Date time;//出版时间
private Double size;//库存数量
private String type;//分类
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPages() {
return pages;
}
public void setPages(String pages) {
this.pages = pages;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
public Double getSize() {
return size;
}
public void setSize(Double size) {
this.size = size;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public String toString() {
return "Book{" +
"id=" + id +
", author='" + author + '\'' +
", name='" + name + '\'' +
", pages=" + pages +
", price='" + price + '\'' +
", time=" + time +
", size=" + size +
", type='" + type + '\'' +
'}';
}
}
Database类,数据库链接代码
passwd要改成自己数据库的代码
url的library1是我已经创建的库,使用时要改成自己的库
private static final String user = "root";
private static final String passwd = "mysql";
private static final String driver = "com.mysql.cj.jdbc.Driver";
private static final String url = "jdbc:mysql://127.0.0.1:3306/library1?useServerPrepStmts=true&serverTimezone=GMT";
MyFrame类的51行图片路径自己改
类似图片文件路径还有很多地方要改的。
//主页面背景设置
JPanel panel = null;
try {
panel = new BackGroundPanel(ImageIO.read(new File("D:\\图片\\e二次元\\20221022.3.png")));
} catch (IOException e) {
e.printStackTrace();
}
管理员注册的验证码为1a2b,代码中也有。
public static boolean AVcode(){
// 弹出带有文本框的对话框,并获取文本框的内容
String input = JOptionPane.showInputDialog(null, "请输入注册验证码");
if (input.equals("1a2b"))return true;
else return false;
}
书籍信息都是在数据库表里面添加的,也可以用管理员登录,然后添加书籍。
代码是一年前写的,有些遗漏的东西,也有写报错的地方,但都是小问题。只要看懂代码,完成实训没问题的。不懂得可以问AI,散修要学会自己用AI解决问题。(哈哈哈,加油)[👉]
通过百度网盘分享的文件:java
链接:https://删pan.baidu.com/s/1pMb3GW9NFINCg0C-LpfEzg
提取码:1234
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务