Java GUI 图书管理系统

  • 图书查询:输入图书名称、作者、出版时间中的任意一项,点击“查询”按钮查询图书。

  • 读者查询:输入读者姓名、读者类型中的任意一项,点击“查询”按钮查询读者。

系统管理
  • 修改密码:首先输入旧密码等待校验,旧密码输入正确后即可设定新的密码。

  • 退出系统:退出图书管理系统程序。

04 运行截图


添加图书

在这里插入图片描述

添加读者

在这里插入图片描述

借书管理

在这里插入图片描述

图书查询

在这里插入图片描述

修改密码

在这里插入图片描述

05 主要代码


添加图书

package com.jason.frame;//com.jason.frame.BookAdd.java

import java.awt.*;

import java.awt.event.*;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import javax.swing.JOptionPane;

public class BookAdd extends Frame implements ActionListener{

Toolkit tool= getToolkit();

String url=“src/bookbk.png”;

Image img=tool.getImage(url);

public void paint(Graphics g){

g.drawImage(img,0,0,this);

}

public void clearAndSetBookId(){

for(int j=0;j<booktxt.length;j++){

booktxt[j].setText(“”);

}

String str=getInsertOrderedList();

booktxt[0].setEditable(false);

booktxt[0].setText(str);

}

String[] lbname={“图书编号”,“图书名称”,“图书页数”,“图书作者”,“翻 译”,“出 版 社”,“出版时间”,“定价”,“库存数量”,“所属类型”};

Label[] booklb=new Label[10];

TextField[] booktxt=new TextField[10];

Button savebtn=new Button(“Save”);

Button closebtn=new Button(“Close”);

Choice booktype=new Choice();

public BookAdd(){

setTitle(“添加新书”);

setLayout(null);

setSize(500,250);

setResizable(false);

//this.setOpaque(false);

this.setForeground(Color.BLACK);

int lx=50,ly=50;

booktype.add(“程序设计”);

booktype.add(“图形设计”);

booktype.add(“其他”);

booktype.add(“科技”);

booktype.add(“文学”);

booktype.add(“历史”);

booktype.add(“百科”);

booktype.add(“英语”);

booktype.add(“计算机”);

booktype.add(“Internet”);

booktype.add(“数学”);

String str=getInsertOrderedList();

for(int i=0;i<booklb.length;i++){

if(lx>240){

lx=50;

ly=ly+30;

}

booklb[i]=new Label(lbname[i]);

booklb[i].setBounds(lx,ly,50,20);

booktxt[i]=new TextField();

booktxt[i].setBounds(lx+60,ly,100,20);

lx=lx+190;

add(booklb[i]);add(booktxt[i]);

}

booktxt[0].setEditable(false);

booktxt[0].setText(str);

booktxt[9].setVisible(false);

booktype.setBounds(300,170,100,20);

add(booktype);

savebtn.setBounds(150,210,80,25);

closebtn.setBounds(280,210,80,25);

add(savebtn);add(closebtn);

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

DbOp.close();

dispose();

}

});

savebtn.addActionListener(this);

closebtn.addActionListener(this);

setLocationRelativeTo(null);

setVisible(true);

}

public static String getInsertOrderedList(){

String returnstring=“”;

String sql=“select * from book”;

try{

int count=0;

ResultSet rs=DbOp.executeQuery(sql);

while(rs.next()){

count++;

}

String[] allid=new String[count];

int[] intofid=new int[count];

int i=0;

ResultSet rs1=DbOp.executeQuery(sql);

while(rs1.next()){

allid[i]=rs1.getString(“id”);

String mystr=allid[i].substring(1);

intofid[i]=Integer.parseInt(mystr);

i++;

}

int temp=-1;

for(int j=0;j<intofid.length;j++){

if(intofid[j]>temp){

temp=intofid[j];

}

}

returnstring=String.valueOf(temp+1);

int len=returnstring.length();

for(int f=0;f<5-len;f++){

returnstring=“0”+returnstring;

}

returnstring=“A”+returnstring;

DbOp.close();

}catch(SQLException ee){

}

return returnstring;

}

public void actionPerformed(ActionEvent e){

Object ob=e.getSource();

if(ob==savebtn){

savebtnActionPerformed();

clearAndSetBookId();

}

if(ob==closebtn){

DbOp.close();

dispose();

}

}

public void savebtnActionPerformed(){

String id=booktxt[0].getText();

String typestr=booktype.getSelectedItem().toString();

String[] inputstring=new String[9];

boolean emptyequals=false;

for(int i=0;i<inputstring.length;i++){

inputstring[i]=booktxt[i].getText();

if(inputstring[i].equals(“”)){

JOptionPane.showMessageDialog(null,“请务必填写完整”);

return;

}

}

if(id.equals(“”)){

JOptionPane.showMessageDialog(null,“图书编号不能为空”);

return;

}

if(IfBookIdExit(id)){

JOptionPane.showMessageDialog(null,“图书编号已存在”);

return;

}

try{

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM”);

sdf.parse(inputstring[6]);

float price=Float.parseFloat(inputstring[7]);

int stock= Integer.parseInt(inputstring[8]);

int page=Integer.parseInt(inputstring[2]);

String sql=“insert into book(id,bookname,booktype,author,translator,publisher,publish_time,price,stock,page)”;

sql=sql+“values('”+id+“‘,’”+inputstring[1]+“‘,’”+typestr+“‘,’”+inputstring[3]+“‘,’”+inputstring[4]+“‘,’”;

sql=sql+inputstring[5]+“‘,’”+inputstring[6]+“',”+price+“,”+stock+“,”+page+“)”;

int i=DbOp.executeUpdate(sql);

if(i==1){

JOptionPane.showMessageDialog(null,“图书添加成功!”);

clearAllText();

}

}catch(ParseException e2){

JOptionPane.showMessageDialog(null,“出版时间格式错误,正确为(年-月)”);

}catch(NumberFormatException e1){

JOptionPane.showMessageDialog(null,“库存数量,价格,页数错误,应为数字”);

}

}

public boolean IfBookIdExit(String id){

boolean right=false;

String sql=“select*from book where id='”+id+“'”;

ResultSet rs=DbOp.executeQuery(sql);

try{

while(rs.next()){

right = true;

}

//right = false;

}catch(SQLException e){

JOptionPane.showMessageDialog(null,“无法正常读取数据”);

}

return right;

}

public void clearAllText(){

for(int i=0;i<booktxt.length;i++){

booktxt[i].setText(“”);

}

}

public static void main(String[] args){

new BookAdd();

}

}

添加读者

package com.jason.frame;//com.jason.frame.ReaderAdd.java

import java.awt.*;

import java.awt.event.*;

import java.sql.ResultSet;

import java.sql.SQLException;

import javax.swing.JOptionPane;

public class ReaderAdd extends Frame{

Toolkit tool= getToolkit();

String url=“src/bookbk.png”;

Image img=tool.getImage(url);

public void paint(Graphics g){

g.drawImage(img,0,0,this);

}

public void clearAndSetReaderId(){

for(int j=0;j<readertxt.length;j++){

readertxt[j].setText(“”);

}

String str=getInsertOrderedList();

readertxt[0].setEditable(false);

readertxt[0].setText(str);

}

String[] labelsign={“读者编号”,“读者姓名”,“读者类别”,“读者性别”,“可借数量”,“可借天数”};

Label[] readerlb=new Label[6];

static TextField[] readertxt=new TextField[6];

Button querybtn,closebtn;

static Choice readertype,readersex;

public ReaderAdd(){

setLayout(null);

setSize(500,200);setResizable(false);

setTitle(“添加新读者”);

String str=getInsertOrderedList();

int lx=50,ly=50;

for(int i=0;i<readertxt.length;i++){

if(lx>240){

ly=ly+30;

lx=50;

}

readerlb[i]=new Label(labelsign[i]);

readertxt[i]=new TextField();

readerlb[i].setBounds(lx,ly,50,20);

readertxt[i].setBounds(lx+60,ly,100,20);

lx=lx+190;

add(readerlb[i]);

add(readertxt[i]);

}

readertxt[0].setEditable(false);

readertxt[0].setText(str);

readertype=new Choice();

readertype.add(“教师”);

readertype.add(“学生”);

readertype.add(“作家”);

readertype.add(“职工”);

readertype.add(“其他”);

readersex=new Choice();

readersex.add(“男”);

readersex.add(“女”);

readertxt[2].setVisible(false);

readertxt[3].setVisible(false);

readertype.setBounds(110,80,100,20);

readersex.setBounds(300,80,100,20);

add(readertype);add(readersex);

querybtn=new Button(“Add”);

closebtn=new Button(“Close”);

querybtn.setBounds(130,140,50,20);

closebtn.setBounds(310,140,50,20);

add(querybtn);add(closebtn);

querybtn.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

updateActionPerformed(e);

clearAndSetReaderId();

}

});

closebtn.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

DbOp.close();

dispose();

//System.exit(0);

}

});

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

DbOp.close();

dispose();

//System.exit(0);

}

});

setLocationRelativeTo(null);

setVisible(true);

}

public static String getInsertOrderedList(){

String returnstring=“”;

String sql=“select * from reader”;

try{

int count=0;

ResultSet rs=DbOp.executeQuery(sql);

while(rs.next()){

count++;

}

String[] allid=new String[count];

int[] intofid=new int[count];

int i=0;

ResultSet rs1=DbOp.executeQuery(sql);

while(rs1.next()){

allid[i]=rs1.getString(“id”);

intofid[i]=Integer.parseInt(allid[i]);

i++;

}

int temp=-1;

for(int j=0;j<intofid.length;j++){

if(intofid[j]>temp){

temp=intofid[j];

}

}

returnstring=String.valueOf(temp+1);

int len=returnstring.length();

for(int f=0;f<5-len;f++){

returnstring=“0”+returnstring;

}

DbOp.close();

}catch(SQLException ee){

}

return returnstring;

}

public static void updateActionPerformed(ActionEvent e){

String[] readerstr=new String[6];

readerstr[2]=readertype.getSelectedItem().toString();

readerstr[3]=readersex.getSelectedItem().toString();

for(int i=0;i<readerstr.length;i++){

if(i2||i3){

continue;

}

readerstr[i]=readertxt[i].getText();

if(readerstr[i].equals(“”)){

JOptionPane.showMessageDialog(null,“请务必填写完整”);

return;

}

}

String id=readerstr[0];

if(IfReaderExit(id)){

JOptionPane.showMessageDialog(null,“该读者已经存在!”);

return;

}

try{

int max_num=Integer.parseInt(readerstr[4]);

int days_num=Integer.parseInt(readerstr[5]);

String sql=“insert into reader(id,readername,readertype,sex,max_num,days_num) values('”;

sql=sql+id+“‘,’”+readerstr[1]+“‘,’”+readerstr[2]+“‘,’”+readerstr[3]+“',”+max_num+“,”+days_num+“)”;

int a=DbOp.executeUpdate(sql);

if(a==1){

JOptionPane.showMessageDialog(null,“读者添加成功”);

}else{

JOptionPane.showMessageDialog(null,“读者添加失败”);

}

DbOp.close();

}catch(NumberFormatException e1){

JOptionPane.showMessageDialog(null,“可借数量和可借天数必须是整数”);

}

}

public static boolean IfReaderExit(String id){

String sql=“select * from reader where id='”+id+“'”;

try{

ResultSet rs=DbOp.executeQuery(sql);

if(rs.next()){

return true;

}else{

return false;

}

}catch(SQLException e){

JOptionPane.showMessageDialog(null,“查询数据错误”);

}

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值