简单的java图书馆管理系统.doc_第1页
简单的java图书馆管理系统.doc_第2页
简单的java图书馆管理系统.doc_第3页
简单的java图书馆管理系统.doc_第4页
简单的java图书馆管理系统.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计题目图书馆管理系统一、 设计环境DBMS:mysql开发工具:eclipse应用程序开发环境:win8.1系统运行环境:win8.1二、 概要设计(1)功能:1.创建图书馆界面(凭账号密码登陆)2.对数据库进行图书的查找、修改、添加、删除3.实时显示图书馆数据的改变(2)ER图(3)流程图(4) 表(5) 数据(6) 连接数据库代码Connection conn=null;Class.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/test,root,panda1993);4、 详细设计(1) 主界面Login.javaimport java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class Login extends JFrame private static final long serialVersionUID = 1L;/保持兼容private JLabel jlUsername;private JLabel jlPwd;private JTextField txtUsername; /用户名private JTextField txtPassword; /密码private JButton jbOk;private JButton jbCancel;public JLabel getJlUsername() if(jlUsername=null)jlUsername=new JLabel(账号);jlUsername.setForeground(Color.black);jlUsername.setBounds(118, 40, 85, 30);return jlUsername;public JLabel getJlPwd() if(jlPwd=null)jlPwd=new JLabel(密码);jlPwd.setForeground(Color.LIGHT_GRAY);jlPwd.setBounds(118, 100, 85, 30);return jlPwd;public JTextField getTxtUsername() if(txtUsername=null)txtUsername=new JTextField(20);txtUsername.setBounds(180,40 , 200, 30);return txtUsername;public JTextField getTxtPassword() if(txtPassword=null)txtPassword=new JPasswordField(20);txtPassword.setBounds(180, 100, 200, 30);return txtPassword;public JButton getJbOk() if(jbOk=null)jbOk=new JButton(登陆);jbOk.setBounds(150, 180, 90, 30);/jbOk.addActionListener(this);return jbOk;public JButton getJbCancel() if(jbCancel=null)jbCancel=new JButton(取消);jbCancel.setBounds(300, 180, 90, 30);return jbCancel;public Login(String title)super(title);/JFrame frame=new JFrame();Container cantainer =this.getContentPane();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);ImageIcon img = new ImageIcon(C:UsersZpandaDesktopwebbookStoreimages1.jpg);JLabel imgLabel = new JLabel(img);this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE);/将背景标签添加到jfram的LayeredPane面板里。imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight();cantainer.setLayout(new BorderLayout();imgLabel.setLayout(null);imgLabel.add(getJlUsername();imgLabel.add(getTxtUsername();imgLabel.add(getJlPwd();imgLabel.add(getTxtPassword();imgLabel.add(getJbOk();imgLabel.add(getJbCancel();cantainer.add(imgLabel,BorderLayout.NORTH);/设置在框架北边(JPanel)cantainer).setOpaque(false); /将内容面板设为透明this.setSize(img.getIconWidth(),img.getIconHeight();myEvent();this.setVisible(true);this.setResizable(false);/让窗口和图片一样大小private void myEvent()jbCancel.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)Login.this.dispose(););jbOk.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)Connection conn=null;Statement stm=null;ResultSet st=null;tryClass.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/test,root,panda1993);stm=conn.createStatement();String sql=select * from user;/String sql1=select psw from user;st=stm.executeQuery(sql);/ st1=stm.executeQuery(sql1);if(st.next()if(txtUsername.getText().equals(st.getString(id)&txtPassword.getText().equals(st.getString(psw)Login.this.setVisible(false);new Book(管理界面);elseJOptionPane.showMessageDialog(null, 您输入的账号或密码不正确);getTxtUsername().setText();getTxtPassword().setText();else JOptionPane.showMessageDialog(null,用户名不存在,请重新输入,错误!); getTxtUsername().setText();getTxtPassword().setText();catch(ClassNotFoundException e1)e1.printStackTrace(); catch (SQLException e2) / TODO Auto-generated catch blocke2.printStackTrace();finallytrystm.close();catch (Exception e3) / 关闭Connection try conn.close(); catch (Exception e4) );public static void main(String args)new Login(图书管理登陆界面);(2) 管理界面Book.javaimport java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.AbstractButton;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JComponent;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.table.TableCellRenderer;public class Book extends JFrame private static final long serialVersionUID = 1L;private JLabel lblId;private JLabel lblBname;private JLabel lblWname;private JLabel lblCbs;private JLabel lblnum1;private JLabel lblnum2;private JTextField bId; /图书编号private JTextField bname; /书名private JTextField wname; /作者名private JTextField cbs; /出版社private JTextField num1; /现存量private JTextField num2; /库存量private JButton jbDel;private JTextField jDel;private JButton jbAdd;private JButton jbSearch;private JButton jbUpdate;private JTable table;/数据库表private JLabel jabel;/输入要查找的书号private JScrollPane scpDemo;private Object btnShow;SuppressWarnings(unused)private Object jth;public JLabel getJabel() if(jabel=null)jabel=new JLabel(查删编号);jabel.setForeground(Color.red);jabel.setBounds(450, 350, 60, 30);return jabel;public JButton getJbDel() if(jbDel=null)jbDel=new JButton(删除);jbDel.setBounds(580, 400, 60, 30);return jbDel;public JTextField getjDel() if(jDel=null)jDel=new JTextField(20);jDel.setBounds(500, 350, 150, 30);return jDel;public JButton getJbAdd() if(jbAdd=null)jbAdd=new JButton(添加);jbAdd.setBounds(500,400,60,30);return jbAdd;public JButton getJbSearch() if(jbSearch=null)jbSearch=new JButton(查找);jbSearch.setBounds(500, 450, 60, 30);return jbSearch;public JButton getJbUpdate() if(jbUpdate=null)jbUpdate=new JButton(修改);jbUpdate.setBounds(580, 450, 60, 30);return jbUpdate;SuppressWarnings(serial)public JTable getTable() JTable table = new JTable(20,3) /设置JTable的单元格为透明的 public Component prepareRenderer(TableCellRenderer renderer,int row,int column) Component c=super.prepareRenderer(renderer,row,column); if(c instanceof JComponent) (JComponent)c).setOpaque(false); return c; ;table.setOpaque(false);/设置jtable本身为透明的 this.setSize(450, 400); this.setLayout(null); this.setLocation(270, 50); this.scpDemo = new JScrollPane(); this.scpDemo.setBounds(10, 100, 420, 270); this.scpDemo.setOpaque(false);/透明 this.scpDemo.getViewport().setOpaque(false);/透明 this.btnShow = new JButton(显示数据(刷新); (Component) this.btnShow).setBounds(10, 50, 420, 30); (AbstractButton) this.btnShow).addActionListener(new ActionListener() public void actionPerformed(ActionEvent ae) btnShow_ActionPerformed(ae); ); add(this.scpDemo); add(Component) this.btnShow); this.setVisible(true); return table;public void btnShow_ActionPerformed(ActionEvent ae) Connection conn=null;try Class.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/test,root,panda1993); Statement pstm = conn.createStatement(); String sql1 = select count(*) from Book; String sql2 = select * from Book; ResultSet rs1 = pstm.executeQuery(sql1); int count = 0; /得到总记录数 if (rs1.next() count=rs1.getInt(1); /关闭第一个结果集 rs1.close(); Object info = new Objectcount6; count = 0; /查询 ResultSet rs2 = pstm.executeQuery(sql2); while (rs2.next() infocount0 = rs2.getString(Bid); infocount1 = rs2.getString(Bname); infocount2 = rs2.getString(Wname); infocount3 = rs2.getString(num1); infocount4 = rs2.getString(num2); infocount5 = rs2.getString(chubs); count+; for(Object o:info) System.out.println(o0); System.out.println(o1); System.out.println(o2); System.out.println(o3); System.out.println(o4); String title = 编号, 书名, 作者, 现存量, 库存量,出版社; / 创建JTable this.table = new JTable(info, title); / 显示表头 this.jth = this.table.getTableHeader(); / 将JTable加入到带滚动条的面板中 this.scpDemo.getViewport().add(table); catch (Exception sqle) JOptionPane.showMessageDialog(null, 错误:+sqle.getMessage(), 错误, JOptionPane.ERROR_MESSAGE); public JLabel getLblId() if(lblId=null)lblId=new JLabel(编号);lblId.setForeground(Color.red);lblId.setBounds(450, 50, 50, 30);return lblId;public JLabel getLblBname() if(lblBname=null)lblBname=new JLabel(书名);lblBname.setForeground(Color.red);lblBname.setBounds(450, 100, 50, 30);return lblBname;public JLabel getLblWname() if(lblWname=null)lblWname=new JLabel(作者);lblWname.setForeground(Color.red);lblWname.setBounds(450,150, 50, 30);return lblWname;public JLabel getLblnum1() if(lblnum1=null)lblnum1=new JLabel(现存量);lblnum1.setForeground(Color.red);lblnum1.setBounds(450,200, 50, 30);return lblnum1;public JLabel getLblnum2() if(lblnum2=null)lblnum2=new JLabel(库存量);lblnum2.setForeground(Color.red);lblnum2.setBounds(450,250, 50, 30);return lblnum2;public JTextField getbId() if(bId=null)bId=new JTextField(20);bId.setBounds(500, 50,150, 30);return bId;public JTextField getBname() if(bname=null)bname=new JTextField(20);bname.setBounds(500, 100, 150, 30);return bname;public JTextField getWname() if(wname=null)wname=new JTextField(20);wname.setBounds(500, 150, 150, 30);return wname;public JTextField getNum1() if(num1=null)num1=new JTextField(20);num1.setBounds(500, 200, 150, 30);return num1;public JTextField getNum2() if(num2=null)num2=new JTextField(20);num2.setBounds(500, 250, 150, 30);return num2;public JLabel getLblCbs() if(lblCbs=null)lblCbs=new JLabel(出版社);lblCbs.setForeground(Color.red);lblCbs.setBounds(450,300, 50, 30);return lblCbs;public JTextField getCbs() if(cbs=null)cbs=new JTextField(20);cbs.setBounds(500, 300, 150, 30);return cbs;public Book(String title)super(title);/JFrame frame=new JFrame();Container cantainer=this.getContentPane();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);ImageIcon img = new ImageIcon(C:UsersZpandaDesktopwebbookStoreimages3.jpg);/这是背景图片JLabel imgLabel = new JLabel(img);/将背景图放在标签里。this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE);/将背景标签添加到jfram的LayeredPane面板里。imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight();/设置背景标签的位置cantainer.setLayout(new BorderLayout();imgLabel.setLayout(null);imgLabel.add(getLblId();imgLabel.add(getbId();imgLabel.add(getLblBname();imgLabel.add(getBname();imgLabel.add(getLblWname();imgLabel.add(getWname();imgLabel.add(getLblnum1();imgLabel.add(getNum1();imgLabel.add(getLblnum2();imgLabel.add(getNum2();imgLabel.add(getLblCbs();imgLabel.add(getCbs();imgLabel.add(getTable();imgLabel.add(getJbDel();imgLabel.add(getjDel();imgLabel.add(getJbAdd();imgLabel.add(getJbSearch();imgLabel.add(getJbUpdate();imgLabel.add(getJabel();cantainer.add(imgLabel,BorderLayout.NORTH);(JPanel)cantainer).setOpaque(false); /将内容面板设为透明this.setSize(img.getIconWidth(),img.getIconHeight();myEvent();this.setVisible(true);this.setResizable(false);private void myEvent() / TODO Auto-generated method stubjbAdd.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ee)Connection conn=null;Statement stm=null;String id1=bId.getText();String name1=bname.getText();String name2=wname.getText();String n1=num1.getText();String n2=num2.getText();String chubs=cbs.getText();tryClass.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/test,root,panda1993);stm=conn.createStatement();String sql=insert into Book values(+id1+,+name1+,+name2+,+n1+,+n2+,+chubs+);stm.executeUpdate(sql);/connection数据库链接对象 创建一个statement对象数据库操作对象getbId().setText();getBname().setText();getWname().setText();getNum1().setText();getNum2().setText();getCbs().setText();catch(ClassNotFoundException e) catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finally / 关闭Statement try stm.close(); catch (Exception e) / 关闭Connection try conn.close(); catch (Exception e) );jbDel.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ee)String id=jDel.getText();Connection conn=null;Statement stm=null;tryClass.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/test,root,panda1993);/String sql=select * from book;String sql=delete from Book where Bid=+id+;stm=conn.createStatement();stm.executeUpdate(sql);getjDel().setText();catch(ClassNotFoundException e) catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finally / 关闭Statement try stm.close(); catch (Exception e) / 关闭Connection try conn.close(); catch (Exception e) );jbSearch.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ee)String id=jDel.getText();Connection conn=null;Statement stm=null;ResultSet rst=null;tryClass.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/test,root,panda1993);/String sql=select * from book;String sql=select * from Book where Bid=+id+;stm=conn.createStatement();rst=stm.executeQuery(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论