图书管理系统
用Java写一个图书管理系统的登陆系统和界面,没有连数据库,只是用GUI的各种组件从而做出的一个界面,看起来还不错,都是慢慢琢磨出来的,是对自己学的一个总结,现在看一下效果:
一,登录界面(运行程序后就会出现)
二,图书管理系统总界面
三,图书录入界面
四,借书界面
只有界面,没连数据库。取消可以返回主界面,其他的按钮需自己做监听器。话不多说,代码:
package com.creat;
import java.awt.Component;
import java.awt.Font;
import java.awt.event.*;
import javax.swing.*;
public class tushuguan extends JFrame implements ActionListener{
public static void main(String[] args) {
// TODO Auto-generated method stub
LoginDialog dlg = new LoginDialog();
dlg.setVisible(true);
}
public tushuguan() {
super();
setTitle("图书管理信息系统");
setBounds(400, 300, 600, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JMenuBar mbar = new JMenuBar();
this.setJMenuBar(mbar);
JMenu m1 = new JMenu("图书管理");
JMenu m2 = new JMenu("借阅图书");
JMenu m3= new JMenu("归还图书");
JMenu m4 = new JMenu("退出登录");
mbar.add(m1);
mbar.add(m2);
mbar.add(m3);
mbar.add(m4);
JMenuItem m11 = new JMenuItem("图书录入");
m1.add(m11);
JMenuItem m12 = new JMenuItem("查询图书");
m1.add(m12);
JMenuItem m13 = new JMenuItem("修改信息");
m1.add(m13);
JMenuItem m14 = new JMenuItem("删除信息");
m1.add(m14);
JMenuItem m21 = new JMenuItem("借书");
m2.add(m21);
JMenuItem m22 = new JMenuItem("查看借阅记录");
m2.add(m22);
JMenuItem m31 = new JMenuItem("还书");
m3.add(m31);
JMenuItem m32 = new JMenuItem("查看还书记录");
m3.add(m32);
m4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
}
});
m11.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
inputbook();
}
});
m12.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
querybook();
}
});
m13.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
revisebook();
}
});
m14.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
deletebook();
}
});
m21.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
borrowbook();
}
});
m31.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
returnbook();
}
});
}
void inputbook() {// 录入图书方法
InputbookDialog isd = new InputbookDialog();
isd.setVisible(true);
}
void querybook() {// 查询图书方法
querybookDialog imd = new querybookDialog();
imd.setVisible(true);
}
void revisebook() {// 修改图书方法
revisebookDialog ind = new revisebookDialog();
ind.setVisible(true);
}
void deletebook() {// 删除图书方法
deletebookDialog ikd = new deletebookDialog();
ikd.setVisible(true);
}
void borrowbook() {// 借阅图书方法
borrowbookDialog icd = new borrowbookDialog();
icd.setVisible(true);
}
void returnbook() {// 归还图书方法
returnbookDialog ird = new returnbookDialog();
ird.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
class InputbookDialog extends JDialog {// 录入图书对话框类
InputbookDialog() {
setTitle("图书录入");
setBounds(500, 250, 600, 400);
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
setLayout(null);
setModal(true);
JLabel jl1 = new JLabel("书 号");
jl1.setBounds(20, 50,100, 25);
add(jl1);
JTextField jt1 = new JTextField();
jt1.setBounds(120, 50, 120, 25);
add(jt1);
JLabel jl2 = new JLabel("作 者");
jl2.setBounds(20, 100, 100, 25);
add(jl2);
JTextField jt2 = new JTextField();
jt2.setBounds(120, 100, 120, 25);
add(jt2);
JLabel jl3 = new JLabel("价 格");
jl3.setBounds(20, 150, 100, 25);
add(jl3);
JTextField jt3 = new JTextField();
jt3.setBounds(120, 150, 120, 25);
add(jt3);
JLabel jl4 = new JLabel("存放位置");
jl4.setBounds(20, 200, 100, 25);
add(jl4);
JTextField jt4 = new JTextField();
jt4.setBounds(120, 200, 120, 25);
add(jt4);
JLabel jl5 = new JLabel("书 名");
jl5.setBounds(300, 50, 100, 25);
add(jl5);
JTextField jt5 = new JTextField();
jt5.setBounds(400, 50, 120, 25);
add(jt5);
JLabel jl6 = new JLabel("出 版 社");
jl6.setBounds(300, 100, 100, 25);
add(jl6);
JTextField jt6 = new JTextField();
jt6.setBounds(400, 100, 120, 25);
add(jt6);
JLabel jl7 = new JLabel("出版时间");
jl7.setBounds(300, 150, 100, 25);
add(jl7);
JTextField jt7 = new JTextField();
jt7.setBounds(400, 150, 120, 25);
add(jt7);
JLabel jl8 = new JLabel("数 量");
jl8.setBounds(300, 200, 100, 25);
add(jl8);
JTextField jt8 = new JTextField();
jt8.setBounds(400, 200, 120, 25);
add(jt8);
JButton cancelBtn = new JButton("取消");
cancelBtn.setBounds(150, 250, 80, 25);
add(cancelBtn);
JButton submitBtn = new JButton("提交");
submitBtn.setBounds(300, 250, 80, 25);
add(submitBtn);
for (int i = 0; i < this.getContentPane().getComponentCount(); i++) {
Component comp = this.getContentPane().getComponent(i);
comp.setFont(new Font("宋体", Font.BOLD, 20));
}
submitBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
}
});
cancelBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
dispose();
}
});
}
}
class querybookDialog extends JDialog {//查询对话框
querybookDialog(){
setTitle("查询图书");
setBounds(500, 250, 600, 400);
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
setLayout(null);
setModal(true);
JLabel jl1 = new JLabel("查询图书");
jl1.setBounds(270, 10,100, 25);
add(jl1);
JLabel jl2 = new JLabel("书 名:");
jl2.setBounds(100, 50,100, 25);
add(jl2);
JTextField jt2 = new JTextField();
jt2.setBounds(200, 50, 230, 25);
add(jt2);
JLabel jl3 = new JLabel("作 者:");
jl3.setBounds(100, 90,100, 25);
add(jl3);
JTextField jt3 = new JTextField();
jt3.setBounds(200, 90, 230, 25);
add(jt3);
JLabel jl4 = new JLabel("出版社:");
jl4.setBounds(100, 130,100, 25);
add(jl4);
JTextField jt4 = new JTextField();
jt4.setBounds(200, 130, 230, 25);
add(jt4);
JLabel jl5 = new JLabel("查询条件:");
jl5.setBounds(150, 160,100, 25);
add(jl5);
JButton JB1 = new JButton("开始查询");
JB1.setBounds(300, 160, 100, 25);
add(JB1);
JLabel jl6 = new JLabel("查询结果(图书信息):");
jl6.setBounds(20, 190,200, 25);
add(jl6);
JTextArea jt=new JTextArea();
jt.setBounds(20, 220, 550, 100);
jt.setLineWrap(true);
add(jt);
JButton cancelBtn = new JButton("取消");
cancelBtn.setBounds(180, 330, 80, 25);
add(cancelBtn);
JButton jb2 = new JButton("确定");
jb2.setBounds(290, 330, 80, 25);
add(jb2);
cancelBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
dispose();
}
});
}
}
class revisebookDialog extends JDialog {// 修改对话框类
revisebookDialog() {
setTitle("修改图书");
setBounds(500, 250, 600, 400);
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
setLayout(null);
setModal(true);
JLabel jl1 = new JLabel("书 号");
jl1.setBounds(20, 50,100, 25);
add(jl1);
JTextField jt1 = new JTextField();
jt1.setBounds(120, 50, 120, 25);
add(jt1);
JLabel jl2 = new JLabel("作 者");
jl2.setBounds(20, 100, 100, 25);
add(jl2);
JTextField jt2 = new JTextField();
jt2.setBounds(120, 100, 120, 25);
add(jt2);
JLabel jl3 = new JLabel("价 格");
jl3.setBounds(20, 150, 100, 25);
add(jl3);
JTextField jt3 = new JTextField();
jt3.setBounds(120, 150, 120, 25);
add(jt3);
JLabel jl4 = new JLabel("存放位置");
jl4.setBounds(20, 200, 100, 25);
add(jl4);
JTextField jt4 = new JTextField();
jt4.setBounds(120, 200, 120, 25);
add(jt4);
JLabel jl5 = new JLabel("书 名");
jl5.setBounds(300, 50, 100, 25);
add(jl5);
JTextField jt5 = new JTextField();
jt5.setBounds(400, 50, 120, 25);
add(jt5);
JLabel jl6 = new JLabel("出 版 社");
jl6.setBounds(300, 100, 100, 25);
add(jl6);
JTextField jt6 = new JTextField();
jt6.setBounds(400, 100, 120, 25);
add(jt6);
JLabel jl7 = new JLabel("出版时间");
jl7.setBounds(300, 150, 100, 25);
add(jl7);
JTextField jt7 = new JTextField();
jt7.setBounds(400, 150, 120, 25);
add(jt7);
JLabel jl8 = new JLabel("数 量");
jl8.setBounds(300, 200, 100, 25);
add(jl8);
JTextField jt8 = new JTextField();
jt8.setBounds(400, 200, 120, 25);
add(jt8);
JButton cancelBtn = new JButton("取消");
cancelBtn.setBounds(150, 250, 80, 25);
add(cancelBtn);
JButton submitBtn = new JButton("保存");
submitBtn.setBounds(300, 250, 80, 25);
add(submitBtn);
for (int i = 0; i < this.getContentPane().getComponentCount(); i++) {
Component comp = this.getContentPane().getComponent(i);
comp.setFont(new Font("宋体", Font.BOLD, 20));
}
submitBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
}
});
cancelBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
dispose();
}
});
}
}
class deletebookDialog extends JDialog {//删除图书对话框
deletebookDialog(){
setTitle("删除图书");
setBounds(500, 250, 600, 400);
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
setLayout(null);
setModal(true);
JLabel jl1 = new JLabel("删除图书");
jl1.setBounds(230, 10,100, 25);
add(jl1);
JLabel jl2 = new JLabel("书 名:");
jl2.setBounds(100, 50,100, 25);
add(jl2);
JTextField jt2 = new JTextField();
jt2.setBounds(200, 50, 230, 25);
add(jt2);
JLabel jl3 = new JLabel("作 者:");
jl3.setBounds(100, 90,100, 25);
add(jl3);
JTextField jt3 = new JTextField();
jt3.setBounds(200, 90, 230, 25);
add(jt3);
JLabel jl4 = new JLabel("出版社:");
jl4.setBounds(100, 130,100, 25);
add(jl4);
JTextField jt4 = new JTextField();
jt4.setBounds(200, 130, 230, 25);
add(jt4);
JLabel jl5 = new JLabel("查询条件:");
jl5.setBounds(150, 160,100, 25);
add(jl5);
JButton JB1 = new JButton("开始查询");
JB1.setBounds(300, 160, 100, 25);
add(JB1);
JLabel jl6 = new JLabel("查询结果(图书信息):");
jl6.setBounds(20, 190,200, 25);
add(jl6);
JTextArea jt=new JTextArea();
jt.setBounds(20, 220, 550, 100);
jt.setLineWrap(true);
add(jt);
JButton cancelBtn = new JButton("取消");
cancelBtn.setBounds(180, 330, 80, 25);
add(cancelBtn);
JButton jb2 = new JButton("删除");
jb2.setBounds(290, 330, 80, 25);
add(jb2);
cancelBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
dispose();
}
});
}
}
class borrowbookDialog extends JDialog {//借书对话框
borrowbookDialog(){
setTitle("开始借书");
setBounds(500, 250, 600, 400);
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
setLayout(null);
setModal(true);
JLabel jl1 = new JLabel("开始借书");
jl1.setBounds(270, 10,100, 25);
add(jl1);
JLabel jl2 = new JLabel("书 名:");
jl2.setBounds(100, 50,100, 25);
add(jl2);
JTextField jt2 = new JTextField();
jt2.setBounds(200, 50, 230, 25);
add(jt2);
JLabel jl3 = new JLabel("作 者:");
jl3.setBounds(100, 90,100, 25);
add(jl3);
JTextField jt3 = new JTextField();
jt3.setBounds(200, 90, 230, 25);
add(jt3);
JLabel jl4 = new JLabel("出版社:");
jl4.setBounds(100, 130,100, 25);
add(jl4);
JTextField jt4 = new JTextField();
jt4.setBounds(200, 130, 230, 25);
add(jt4);
JLabel jl5 = new JLabel("检索条件:");
jl5.setBounds(150, 160,100, 25);
add(jl5);
JButton JB1 = new JButton("开始检索");
JB1.setBounds(300, 160, 100, 25);
add(JB1);
JLabel jl6 = new JLabel("检索结果(图书信息):");
jl6.setBounds(20, 190,200, 25);
add(jl6);
JTextArea jt=new JTextArea();
jt.setBounds(20, 220, 550, 100);
jt.setLineWrap(true);
add(jt);
JButton cancelBtn = new JButton("取消");
cancelBtn.setBounds(180, 330, 80, 25);
add(cancelBtn);
JButton jb2 = new JButton("借书");
jb2.setBounds(290, 330, 80, 25);
add(jb2);
cancelBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
dispose();
}
});
}
}
class returnbookDialog extends JDialog {//还书对话框
returnbookDialog(){
setTitle("开始还书");
setBounds(500, 250, 600, 300);
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
setLayout(null);
setModal(true);
JLabel jl1 = new JLabel("开始还书");
jl1.setBounds(270, 10,100, 25);
add(jl1);
JLabel jl2 = new JLabel("书 名:");
jl2.setBounds(100, 50,100, 25);
add(jl2);
JTextField jt2 = new JTextField();
jt2.setBounds(200, 50, 230, 25);
add(jt2);
JLabel jl3 = new JLabel("作 者:");
jl3.setBounds(100, 90,100, 25);
add(jl3);
JTextField jt3 = new JTextField();
jt3.setBounds(200, 90, 230, 25);
add(jt3);
JLabel jl4 = new JLabel("出版社:");
jl4.setBounds(100, 130,100, 25);
add(jl4);
JTextField jt4 = new JTextField();
jt4.setBounds(200, 130, 230, 25);
add(jt4);
JButton cancelBtn = new JButton("取消");
cancelBtn.setBounds(200, 180, 80, 25);
add(cancelBtn);
JButton jb2 = new JButton("还书");
jb2.setBounds(340, 180, 80, 25);
add(jb2);
cancelBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
dispose();
}
});
}
}
class LoginDialog extends JDialog {// 登录对话框类
JLabel usernamelbl;
JLabel passwordlbl;
JComboBox username;
JPasswordField password;
JButton loginBtn;
JButton cancelBtn;
LoginDialog() {
createGUIElements();
}//
void createGUIElements() {
// 设置登录对话框,并设置位置及大小、模态等
setTitle("登录系统");
setBounds(500, 250, 300, 250);
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
setLayout(null);
setModal(true);
// 创建用户名与密码标签
usernamelbl = new JLabel("用户名:");
usernamelbl.setBounds(50, 30, 50, 20);
this.add(usernamelbl);
passwordlbl = new JLabel("密 码:");
passwordlbl.setBounds(50, 80, 50, 20);
this.add(passwordlbl);
// 创建用户名与密码输入组件,并赋处值
username = new JComboBox();
username.addItem("沓");
username.addItem("飞");
username.setBounds(105, 30, 105, 20);
this.add(username);
password = new JPasswordField("123456");
password.setBounds(105, 80, 105, 20);
password.setEchoChar('*');
this.add(password);
// 创建登录与退出按钮,并添加事件
loginBtn = new JButton("登录");
loginBtn.setBounds(50, 130, 60, 20);
add(loginBtn);
loginBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
login();
} // 方法结束
});
cancelBtn = new JButton("退出");
cancelBtn.setBounds(150, 130, 60, 20);
add(cancelBtn);
cancelBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
logout();
}
});
}
void login() // 处理登录按钮事件
{
String accout = username.getSelectedItem().toString();
String pwd = new String(password.getPassword());
// 如果用户名与密码正确,则隐藏登录对话框,显示主窗体
if (accout.equals("沓") && pwd.equals("123456")) {
setVisible(false);// 只隐藏存在潜在问题,可用dispose()彻底销毁
showMianWindow();// 显示主窗体
} else {
JOptionPane.showMessageDialog(this, "用户名是" + accout + ",密码是" + pwd);
}
}
void logout()// 处理取消按钮事件
{
int ret = JOptionPane.showConfirmDialog(this, "选择是,取消登录。", "取消登录",
JOptionPane.YES_NO_OPTION);
if (ret == JOptionPane.YES_OPTION) {
dispose();
}
}
void showMianWindow() {// 显示主窗体
tushuguan jf=new tushuguan();
jf.setVisible(true);
}
}
结束,代码还有待完善,,,,,