📄 bookinfomationf.java
字号:
//图书信息查询
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.sql.*;
import java.io.*;
import java.util.*;
public class BookInfomationF extends JFrame implements ActionListener
{ public JToolBar JTB;
public JButton btn1,btn2,btn3,btn4,btn7,btn8,btn9;
public JLabel statusLB,statusLB1,statusLB2,statusLB3;
public JPanel jp1,statusPane,statusPane1,statusPane2,statusPane3;
public JTable jta;
public int books,exit,borrowed,not;
public Statement stmt,stmt1,stmt2;
public Connection con,con1,con2;
public JFrame frame;
public Object rowData[][];
private Toolkit tool;
private Dimension wndsize;
public BookInfomationF()
{
JFrame.setDefaultLookAndFeelDecorated(true);
frame=new JFrame("图书信息查询");
ImageIcon icon=new ImageIcon("images/home.gif");
frame.setIconImage(icon.getImage());
frame.setResizable(false);
Font font1=new Font("宋体",Font.PLAIN,15);
Container content=frame.getContentPane();
content.setLayout(null);
tool=frame.getToolkit();
wndsize=tool.getScreenSize();
int width=tool.getScreenSize().width;
int height=tool.getScreenSize().height;
//--初始化工具栏各个组件--
btn1=new JButton("查询图书",new ImageIcon("images/findd.gif"));
btn2=new JButton("全部图书",new ImageIcon("images/BOOKS04.gif"));
btn3=new JButton("在馆图书",new ImageIcon("images/home1.gif"));
btn4=new JButton("馆外图书",new ImageIcon("images/book.gif"));
btn7=new JButton("打印预览",new ImageIcon("images/text.gif"));
btn8=new JButton("导出数据",new ImageIcon("images/save.gif"));
btn9=new JButton("退出",new ImageIcon("images/ren1.gif"));
//--设置工具栏各个组件的提示--
btn1.setToolTipText("查询图书信息");
btn2.setToolTipText("查询全部图书信息");
btn3.setToolTipText("在馆图书信息");
btn4.setToolTipText("馆外图书信息");
btn7.setToolTipText("打印预览");
btn8.setToolTipText("导出数据");
btn9.setToolTipText("退出");
//--为工具栏中各个组件添加事件--
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
btn4.addActionListener(this);
btn7.addActionListener(this);
btn8.addActionListener(this);
btn9.addActionListener(this);
//--为工具栏中各个组件设置字体--
btn1.setFont(font1);
btn2.setFont(font1);
btn3.setFont(font1);
btn4.setFont(font1);
btn7.setFont(font1);
btn8.setFont(font1);
btn9.setFont(font1);
//--添加工具栏各个组件--
JTB=new JToolBar();
JTB.addSeparator();
JTB.addSeparator();
JTB.add(btn1);
JTB.add(btn2);
JTB.addSeparator();
JTB.add(btn3);
JTB.add(btn4);
JTB.addSeparator();
JTB.add(btn7);
JTB.add(btn8);
JTB.addSeparator();
JTB.add(btn9);
JTB.setFont(font1);
JTB.setFloatable(false);
JTB.setBorder(BorderFactory.createLoweredBevelBorder());
JTB.setBounds(0,2,width-10,45);
//--初始化基本设置各个组件--
Object columnNames[]={"书名","编号","条形码","分类法","作者","类型","价格","出版社名称","页码","书架名称","出版日期","入库日期","库存量","借阅次数","图书状态","操作员","摘要"};
rowData=new Object[1000][17];
jta=new JTable(rowData,columnNames);
jta.setRowHeight(20);
jta.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
try{ view();}
catch(SQLException ed){}
jta.setPreferredScrollableViewportSize(new Dimension(500,30));
JScrollPane scrollPane=new JScrollPane(jta,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
//--设置各个组件的大小和位置--
jta.setBounds(10,25,1000,height-140);
scrollPane.setBounds(10,25,width-40,height-140);
//--设置各个组件的字体--
jta.setFont(font1);
//--将各个组件添加到容器中--
jp1=new JPanel();
jp1.setLayout(null);
jp1.add(scrollPane);
jp1.setBorder(BorderFactory.createTitledBorder("查询结果"));
jp1.setBounds(8,45,width-20,height-105);
//--创建状态栏--
statusPane=new JPanel();
statusPane1=new JPanel();
statusPane2=new JPanel();
statusPane3=new JPanel();
statusPane.setLayout(null);
statusPane1.setLayout(null);
statusPane2.setLayout(null);
statusPane3.setLayout(null);
//--初始化状态栏中各个组件--
statusLB=new JLabel("图书总数量为:"+books+"(册)",JLabel.CENTER);
statusLB1=new JLabel("在馆图书数量为:"+exit+"(册)",JLabel.CENTER);
statusLB2=new JLabel("已借出图书数量为:"+borrowed+"(册)",JLabel.CENTER);
statusLB3=new JLabel("已挂失图书数量为:"+not+"(册)",JLabel.CENTER);
//--设置状态栏中各个组件的字体--
statusLB.setFont(font1);
statusLB1.setFont(font1);
statusLB2.setFont(font1);
statusLB3.setFont(font1);
//--设置状态栏中各个组件的大小和位置--
statusLB.setBounds(0,0,width/4,25);
statusLB1.setBounds(0,0,width/4,25);
statusLB2.setBounds(0,0,width/4,25);
statusLB3.setBounds(0,0,width/4,25);
statusPane.setBounds(0,height-59,width/4,25);
statusPane1.setBounds(width/4,height-59,width/4,25);
statusPane2.setBounds(width/2,height-59,width/4,25);
statusPane3.setBounds((3*width)/4,height-59,width/4,25);
//--添加状态栏--
statusPane.add(statusLB);
statusPane.setBorder(BorderFactory.createLoweredBevelBorder());
statusPane1.add(statusLB1);
statusPane1.setBorder(BorderFactory.createLoweredBevelBorder());
statusPane2.add(statusLB2);
statusPane2.setBorder(BorderFactory.createLoweredBevelBorder());
statusPane3.add(statusLB3);
statusPane3.setBorder(BorderFactory.createLoweredBevelBorder());
//--把各个组件添加到窗口中--
content.add(JTB);
content.add(jp1);
content.add(statusPane);
content.add(statusPane1);
content.add(statusPane2);
content.add(statusPane3);
frame.setSize(wndsize);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{ Object obj=e.getSource();
if(obj==btn1)//图书查询按钮事件
{new BookInfoF(this);}
if(obj==btn2)//刷新按钮事件
{try{ setnull();}
catch(SQLException ed){}
try{ view();}
catch(SQLException ed){}
}
if(obj==btn3)//在馆图书按钮事件
{try{ setnull();}
catch(SQLException ed){}
try{ Query();}
catch(SQLException ed){}
}
if(obj==btn4)//馆外图书按钮事件
{try{ setnull();}
catch(SQLException ed){}
try{ Query1();}
catch(SQLException ed){}
}
if(obj==btn7)//打印预览按钮事件
{}
if(obj==btn8)//导出数据按钮事件
{}
if(obj==btn9)//退出按钮事件
{frame.dispose();}
}
//在馆图书代码///////////////////////////////////////////////////////////////////////
public void Query() throws SQLException
{ int i=0;
String sure="在架";
String tsmc,bh,txm,flf,zz,lx,jg,cbs,ym,sjmc,cbrq,rkrq,tszt,kcl,jycs,czy,zy;
String strurl =
"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=DataBase/Library.mdb";
try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch (ClassNotFoundException e) {}
con= DriverManager.getConnection(strurl);
Statement stmt = con.createStatement();
ResultSet rs=stmt.executeQuery("select * from 图书资料 where 图书状态='"+sure+"' ORDER BY 编号");
while(rs.next())
{ tsmc=rs.getString("图书名称");bh=rs.getString("编号");txm=rs.getString("条形码");
flf=rs.getString("分类法");zz=rs.getString("作者");lx=rs.getString("类型");
jg=rs.getString("价格");cbs=rs.getString("出版社");ym=rs.getString("页码");
sjmc=rs.getString("书架名称");cbrq=rs.getString("出版日期");rkrq=rs.getString("入库日期");
kcl=rs.getString("库存量");jycs=rs.getString("借阅次数");tszt=rs.getString("图书状态");czy=rs.getString("操作员");zy=rs.getString("摘要");
rowData[i][0]=tsmc;rowData[i][1]=bh;rowData[i][2]=txm;
rowData[i][3]=flf;rowData[i][4]=zz;rowData[i][5]=lx;
rowData[i][6]=jg;rowData[i][7]=cbs;rowData[i][8]=ym;
rowData[i][9]=sjmc;rowData[i][10]=cbrq;rowData[i][11]=rkrq;
rowData[i][12]=kcl;rowData[i][13]=jycs;rowData[i][14]=tszt;
rowData[i][15]=czy;rowData[i][16]=zy;i++;
}
}
//馆外图书代码///////////////////////////////////////////////////////////////////////
public void Query1() throws SQLException
{ int i=0;
String sure="已挂失",sure1="已借出";
String tsmc,bh,txm,flf,zz,lx,jg,cbs,ym,sjmc,cbrq,rkrq,tszt,kcl,jycs,czy,zy;
String strurl =
"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=DataBase/Library.mdb";
try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch (ClassNotFoundException e) {}
con= DriverManager.getConnection(strurl);
Statement stmt = con.createStatement();
ResultSet rs=stmt.executeQuery("select * from 图书资料 where 图书状态='"+sure+"' OR 图书状态='"+sure1+"' ORDER BY 编号");
while(rs.next())
{ tsmc=rs.getString("图书名称");bh=rs.getString("编号");txm=rs.getString("条形码");
flf=rs.getString("分类法");zz=rs.getString("作者");lx=rs.getString("类型");
jg=rs.getString("价格");cbs=rs.getString("出版社");ym=rs.getString("页码");
sjmc=rs.getString("书架名称");cbrq=rs.getString("出版日期");rkrq=rs.getString("入库日期");
kcl=rs.getString("库存量");jycs=rs.getString("借阅次数");tszt=rs.getString("图书状态");czy=rs.getString("操作员");zy=rs.getString("摘要");
rowData[i][0]=tsmc;rowData[i][1]=bh;rowData[i][2]=txm;
rowData[i][3]=flf;rowData[i][4]=zz;rowData[i][5]=lx;
rowData[i][6]=jg;rowData[i][7]=cbs;rowData[i][8]=ym;
rowData[i][9]=sjmc;rowData[i][10]=cbrq;rowData[i][11]=rkrq;
rowData[i][12]=kcl;rowData[i][13]=jycs;rowData[i][14]=tszt;
rowData[i][15]=czy;rowData[i][16]=zy;i++;
}
}
/////////////////////设置图书信息表格为空///////////////////////////////////////////////////////////////////
public void setnull() throws SQLException
{int i=0;
try{
String strurl =
"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=DataBase/Library.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con= DriverManager.getConnection(strurl);
stmt = con.createStatement();
ResultSet rs=stmt.executeQuery("SELECT * From 图书资料");
while(rs.next())
{
rowData[i][0]=null;rowData[i][1]=null;rowData[i][2]=null;
rowData[i][3]=null;rowData[i][4]=null;rowData[i][5]=null;
rowData[i][6]=null;rowData[i][7]=null;rowData[i][8]=null;
rowData[i][9]=null;rowData[i][10]=null;rowData[i][11]=null;
rowData[i][12]=null;rowData[i][13]=null;rowData[i][14]=null;
rowData[i][15]=null;rowData[i][16]=null;
i++;
validate();
}
rowData[i][0]=null;rowData[i][1]=null;rowData[i][2]=null;
rowData[i][3]=null;rowData[i][4]=null;rowData[i][5]=null;
rowData[i][6]=null;rowData[i][7]=null;rowData[i][8]=null;
rowData[i][9]=null;rowData[i][10]=null;rowData[i][11]=null;
rowData[i][12]=null;rowData[i][13]=null;rowData[i][14]=null;
rowData[i][15]=null;rowData[i][16]=null;
jta.repaint();
}
catch(Exception g)
{g.printStackTrace();}
}
/////////////////////连接表格和数据库///////////////////////////////////////////////////////////////////
public void view() throws SQLException
{ //--连接表格和数据库--
int i=0;
books=0;exit=0;borrowed=0;not=0;
try{
String strurl1 =
"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=DataBase/Library.mdb";
try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch (ClassNotFoundException eg) {}
con1= DriverManager.getConnection(strurl1);
stmt1= con1.createStatement();
ResultSet rs1 = stmt1.executeQuery("select * from 图书资料 ORDER BY 编号");
while(rs1.next())
{String bookname=rs1.getString(1);
String bianhao=rs1.getString(2);
String bookcode=rs1.getString(3);
String fenlei=rs1.getString(4);
String zuozhe=rs1.getString(5);
String type=rs1.getString(6);
String price=rs1.getString(7);
String press=rs1.getString(8);
String page=rs1.getString(9);
String sheefname=rs1.getString(10);
String chuban=rs1.getString(11);
String ruku=rs1.getString(12);
String stock=rs1.getString(13);
String borrow=rs1.getString(14);
String status=rs1.getString(15);
String oparator=rs1.getString(16);
String key=rs1.getString(17);
books++;
if(status.equals("在架"))
{exit++;}
else if(status.equals("已借出"))
{borrowed++;}
else if(status.equals("已挂失"))
{not++;}
rowData[i][0]=bookname;
rowData[i][1]=bianhao;
rowData[i][2]=bookcode;
rowData[i][3]=fenlei;
rowData[i][4]=zuozhe;
rowData[i][5]=type;
rowData[i][6]=price;
rowData[i][7]=press;
rowData[i][8]=page;
rowData[i][9]=sheefname;
rowData[i][10]=chuban;
rowData[i][11]=ruku;
rowData[i][12]=stock;
rowData[i][13]=borrow;
rowData[i][14]=status;
rowData[i][15]=oparator;
rowData[i][16]=key;
i++;
}
jta.repaint();
con1.close();
}
catch(Exception es){//JOptionPane.showMessageDialog(null, "数据库中没有成绩信息", "警告",
//JOptionPane.WARNING_MESSAGE);
es.printStackTrace();}
}
public static void main(String[]args)
{ try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch(Exception e) {
e.printStackTrace();
}
new BookInfomationF();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -