Java编写的简单图书管理系统(1).doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateJava编写的简单图书管理系统(1)Java编写的简单图书管理系统Java编写的简单图书管理系统主界面代码实现package Library;import 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.BLACK);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("F:Java传习srcLibraryZFXYH48I_U)C4M2C4.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); /注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。this.setSize(img.getIconWidth(),img.getIconHeight();myEvent();this.setVisible(true);this.setResizable(true);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/library","sa","123456");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("图书管理登陆界面");管理界面实现代码package Library;import java.awt.BorderLayout;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.JPanel;import javax.swing.JTable;import javax.swing.JTextField;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;/输入要查找的书号public JLabel getJabel() if(jabel=null)jabel=new JLabel("查删学号");jabel.setBounds(50, 350, 50, 30);return jabel;public JButton getJbDel() if(jbDel=null)jbDel=new JButton("删除");jbDel.setBounds(180, 400, 60, 30);return jbDel;public JTextField getjDel() if(jDel=null)jDel=new JTextField(20);jDel.setBounds(100, 350, 150, 30);return jDel;public JButton getJbAdd() if(jbAdd=null)jbAdd=new JButton("添加");jbAdd.setBounds(100,400,60,30);return jbAdd;public JButton getJbSearch() if(jbSearch=null)jbSearch=new JButton("查找");jbSearch.setBounds(100, 450, 60, 30);return jbSearch;public JButton getJbUpdate() if(jbUpdate=null)jbUpdate=new JButton("修改");jbUpdate.setBounds(180, 450, 60, 30);return jbUpdate;public JTable getTable() if(table=null)table=new JTable(100,6);table.setBounds(270, 50, 500, 600);return table;public JLabel getLblId() if(lblId=null)lblId=new JLabel("编号");lblId.setBounds(50, 50, 50, 30);return lblId;public JLabel getLblBname() if(lblBname=null)lblBname=new JLabel("书名");lblBname.setBounds(50, 100, 50, 30);return lblBname;public JLabel getLblWname() if(lblWname=null)lblWname=new JLabel("作者");lblWname.setBounds(50,150, 50, 30);return lblWname;public JLabel getLblnum1() if(lblnum1=null)lblnum1=new JLabel("现存量");lblnum1.setBounds(50,200, 50, 30);return lblnum1;public JLabel getLblnum2() if(lblnum2=null)lblnum2=new JLabel("库存量");lblnum2.setBounds(50,250, 50, 30);return lblnum2;public JTextField getbId() if(bId=null)bId=new JTextField(20);bId.setBounds(100, 50,150, 30);return bId;public JTextField getBname() if(bname=null)bname=new JTextField(20);bname.setBounds(100, 100, 150, 30);return bname;public JTextField getWname() if(wname=null)wname=new JTextField(20);wname.setBounds(100, 150, 150, 30);return wname;public JTextField getNum1() if(num1=null)num1=new JTextField(20);num1.setBounds(100, 200, 150, 30);return num1;public JTextField getNum2() if(num2=null)num2=new JTextField(20);num2.setBounds(100, 250, 150, 30);return num2;public JLabel getLblCbs() if(lblCbs=null)lblCbs=new JLabel("出版社");lblCbs.setBounds(50,300, 50, 30);return lblCbs;public JTextField getCbs() if(cbs=null)cbs=new JTextField(20);cbs.setBounds(100, 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("F:Java传习srcLibraryd50735fae6cd7b8961e8eafd0f2442a7d8330ecc1.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); /注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。this.setSize(img.getIconWidth(),img.getIconHeight();myEvent();this.setVisible(true);this.setResizable(true);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/library","sa","123456");stm=conn.createStatement();String sql="insert into book values('"+id1+"','"+name1+"','"+name2+"','"+n1+"','"+n2+"','"+chubs+"')"stm.executeUpdate(sql);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/library","sa","123456");/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/library","sa","123456");/String sql="select * from book"String sql="select * from book where Bid='"+id+"'"stm=conn.createStatement();rst=stm.executeQuery(sql);if(rst.next()getbId().setText(rst.getString("Bid");getBname().setText(rst.getString("Bname");getWname().setText(rst.getString("Wname");getNum1().setText(rst.getString("num1");getNum2().setText(rst.getString("num2");getCbs().setText(rst.getString("chubs");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) );jbUpdate.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ee)String id1=bId.getText();String name1=bname.getText();String name2=wname.getText();String n1=num1.getText();String n2=num2.getText();String chubs=cbs.getText();Connection conn=null;Statement stm=null;tryClass.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection("jdbc:mysql:/localhost:3306/library","sa","123456");String sql="update library.book set Bname='"+name1+"',Wname='"+name2+"',num1='"+n1+"',num2='"+n2+"',chubs='"+chubs+"' where Bid='"+id1+"'"stm=conn.createStatement();stm.executeUpdate(sql);catch(ClassNotFoundException e) catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finally / 关闭Statement try stm.close