图书管理系统

学习到

1,图片跟着窗口大小拉伸

2,新建窗口时的显示方式

3,添加表格要拉动窗口才看到,.validate();秒杀之

借书

import java.awt.event.ActionEvent;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;

public class Borrow extends Find {
    JScrollPane scrollPane ;
    JTable table2;
    Object shuju[][];
    JButton button;
    private JLabel lblNewLabel;
    public Borrow() {
        
        button = new JButton("借一本");
        button.setBounds(384, 232, 113, 27);
        add(button);
        
        
        table2=new JTable();
        Query query=new Query();
        query.Connection();
        query.setTableName("borrowtable");
        query.setSQL("select * from borrowtable");
        shuju=query.getRecord(query.getSQL());
//        for(int i=0;i<1;i++){
//        for(int j=0;j<2;j++){
//            System.out.print(shuju[i][j]+" ");
//        }
//    }
        table2.setModel(new DefaultTableModel(shuju, new Object[]{"借书人","书本isbn"}));
        query.Release();
        scrollPane=new JScrollPane(table2);
        scrollPane.setBounds(713, 179, 193, 276);
        add(scrollPane);
        validate();
        
        button.addActionListener(this);
        
        lblNewLabel = new JLabel("先查找,再借");
        lblNewLabel.setBounds(504, 227, 150, 37);
        add(lblNewLabel);
    }
    public void actionPerformed(ActionEvent e) {
        super.actionPerformed(e);
        if(e.getActionCommand()=="借一本"){
            int row=table.getSelectedRow();
            DefaultTableModel model1 = (DefaultTableModel) table.getModel();
            String s1=JOptionPane.showInputDialog(this,"输入借书同学的名字");
            String s2=table.getValueAt(row, 0).toString();
//            System.out.println(s2);
            
            System.out.println(s1);
            if(s1!=null){
                Query query=new Query();
                query.Connection();
                
                query.setSQL("select 现有数量  from booktable where isbn='"+s2+"'");
                ResultSet rs1=query.exeQuery(query.getSQL());
                int number=0;
                boolean isBorrow=true;
                try {
                    rs1.next();
//                    String temp=rs1.getString(0);
                    number=Integer.parseInt(rs1.getString(1));
                    if(number<1){
                        isBorrow=false;
                        JOptionPane.showMessageDialog(this, "没有库存了");
                    }
                        
                } catch (SQLException e1) {
                    // TODO 自动生成的 catch 块
                    e1.printStackTrace();
                }
                
                if(isBorrow){
                    number--;//借一本
                    
                    DefaultTableModel model2 = (DefaultTableModel) table2.getModel();
                    Vector row1 = new Vector(); // 数据行向量,使用它的add()添加元素,比如整数、String、Object等,有几行就new几个行向量
                    Vector row2 =new Vector();
//                    System.out.println(s1);
//                    System.out.println(s2);
                    row1.add(s1);
                    row2.add(s2);
                    Vector data = new Vector(); // 数据行向量集,因为列表不止一行,往里面添加数据行向量,添加方法add(row)
                    data.add(row1);
                    data.add(row2);
                    model2.addRow(data);
                    table2.repaint();
                    query.setSQL("insert into borrowtable values('"+s1+"','"+s2+"')");
                    query.exeUpdate(query.getSQL());
                    String temp=String.valueOf(number);
                    query.setSQL("update booktable set 现有数量='"+temp+"' where isbn='"+s2+"'");
                    query.exeUpdate(query.getSQL());
                    model1.setValueAt(temp, row, 7);
                    table.repaint();
                }
            }
        }
    
    }
}
View Code

删除图书

import java.awt.event.ActionEvent;

import javax.swing.JButton;
import javax.swing.table.DefaultTableModel;

public class DeleteBook extends Find{
    DeleteBook(){
        
        JButton button1 = new JButton("删除");
        button1.setBounds(381, 232, 113, 27);
        add(button1);
        
        button1.addActionListener(this);
        
    }
    public void actionPerformed(ActionEvent e){
        super.actionPerformed(e);
        if(e.getActionCommand()=="删除"){
            int a=table.getSelectedRow();
            String s1=table.getValueAt(a, 0).toString();
            Query query=new Query();
            query.Connection();
            query.setSQL("delete from booktable where isbn='"+s1+"'");
            query.exeUpdate(query.getSQL());
            query.Release();
            DefaultTableModel model = (DefaultTableModel) table.getModel();
            model.removeRow(a);
            table.repaint();
        }
    }
    
}
View Code

查找图书

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

public class Find extends JPanel implements ActionListener{
    private JTextField text1;
    private JTextField text2;
    JTable table;
    JRadioButton button1 = new JRadioButton("精确查找");
    JRadioButton button2 = new JRadioButton("模糊查找");
    ButtonGroup group=new ButtonGroup();
    JScrollPane scrollPane;
    Object biaoTou[]={"isbn","书名","作者","出版社","价格","出版日期","库存数量","现有数量"};
    Object shuju[][];
    DefaultTableModel model;

    /**
     * Create the panel.
     */
    public Find() {
        setLayout(null);
        
        button1.setBounds(79, 103, 129, 27);
        add(button1);
        
        button2.setBounds(238, 103, 157, 27);
        add(button2);
        
        JLabel label = new JLabel("书名");
        label.setBounds(64, 169, 72, 18);
        add(label);
        
        text1 = new JTextField();
        text1.setBounds(139, 166, 189, 24);
        add(text1);
        text1.setColumns(10);
        
        JLabel label_1 = new JLabel("作者");
        label_1.setBounds(64, 237, 53, 18);
        add(label_1);
        
        text2 = new JTextField();
        text2.setBounds(139, 234, 189, 24);
        add(text2);
        text2.setColumns(10);
        
        JButton button = new JButton("确定");
        button.setBounds(382, 165, 113, 27);
        add(button);
        
        button.addActionListener(this);
        
        group.add(button1);
        group.add(button2); 
        
        button1.setSelected(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getActionCommand()=="确定"){
            // TODO 自动生成的方法存根
            Query query=new Query();
            query.Connection();
            query.setTableName("booktable");
            String s1=text1.getText().trim();
            String s2=text2.getText().trim();
            if(button1.isSelected()){
                if(s1.equals("")&&s2.equals("")){
                    query.setSQL("select * from booktable");
                }else if(s1.equals("")&&!s2.equals("")){
                    query.setSQL("select * from booktable where 作者='"+s2+"'");
                }else if(!s1.equals("")&&s2.equals("")){
                    query.setSQL("select * from booktable where 书名='"+s1+"'");
                }else if(!s1.equals("")&&!s2.equals("")){
                    query.setSQL("select * from booktable where 作者='"+s2+"' and 书名='"+s1+"'");
                }
            }
            else if(button2.isSelected()){
                if(s1.equals("")&&s2.equals("")){
                    query.setSQL("select * from booktable");
                }else if(s1.equals("")&&!s2.equals("")){
                    query.setSQL("select * from booktable where 作者 like '"+s2+"%'");
                }else if(!s1.equals("")&&s2.equals("")){
                    query.setSQL("select * from booktable where 书名 like '"+s1+"%'");
                }else if(!s1.equals("")&&!s2.equals("")){
                    query.setSQL("select * from booktable where 作者 like '"+s2+"%' and 书名 like'"+s1+"%'");
                }
            }
            shuju=query.getRecord(query.getSQL());
            query.Release();
            
            table=new JTable();
            model=new DefaultTableModel(shuju, biaoTou);
            table.setModel(model);
            scrollPane=new JScrollPane(table);
            scrollPane.setBounds(46, 276, 556, 185);
            add(scrollPane);
            table.repaint();
            validate();
//            for(int i=0;i<shuju.length;i++){
//            for(int j=0;j<8;j++){
//                System.out.print(shuju[i][j]+" ");
//            }
//            System.out.println();
//        }
        
        }
    }
}
View Code

图书入库

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class In extends JPanel implements ActionListener {
    private JTextField text1;
    private JTextField text2;
    private JTextField text3;
    private JTextField text4;
    private JTextField text5;
    private JTextField text6;
    private JTextField text7;
    private JTextField text8;

    /**
     * Create the panel.
     */
    public In() {
        setLayout(null);
        
        JLabel lblIsbn = new JLabel("isbn");
        lblIsbn.setBounds(130, 35, 72, 18);
        add(lblIsbn);
        
        JLabel label = new JLabel("书名");
        label.setBounds(130, 91, 72, 18);
        add(label);
        
        JLabel label_1 = new JLabel("作者");
        label_1.setBounds(130, 157, 72, 18);
        add(label_1);
        
        JLabel label_2 = new JLabel("价格");
        label_2.setBounds(130, 269, 72, 18);
        add(label_2);
        
        JLabel label_3 = new JLabel("出版日期");
        label_3.setBounds(130, 336, 72, 18);
        add(label_3);
        
        JLabel label_4 = new JLabel("原有库存");
        label_4.setBounds(130, 404, 72, 18);
        add(label_4);
        
        JLabel label_5 = new JLabel("现有库存");
        label_5.setBounds(130, 460, 72, 18);
        add(label_5);
        
        JButton button = new JButton("确认");
        button.setBounds(172, 508, 113, 27);
        add(button);
        
        button.addActionListener(this);
        
        JLabel label_6 = new JLabel("出版社");
        label_6.setBounds(130, 221, 72, 18);
        add(label_6);
        
        text1 = new JTextField();
        text1.setBounds(227, 32, 130, 24);
        add(text1);
        text1.setColumns(10);
        
        text2 = new JTextField();
        text2.setBounds(228, 88, 129, 24);
        add(text2);
        text2.setColumns(10);
        
        text3 = new JTextField();
        text3.setBounds(229, 151, 128, 24);
        add(text3);
        text3.setColumns(10);
        
        text4 = new JTextField();
        text4.setBounds(227, 218, 130, 24);
        add(text4);
        text4.setColumns(10);
        
        text5 = new JTextField();
        text5.setBounds(227, 266, 130, 24);
        add(text5);
        text5.setColumns(10);
        
        text6 = new JTextField();
        text6.setBounds(227, 333, 130, 24);
        add(text6);
        text6.setColumns(10);
        
        text7 = new JTextField();
        text7.setBounds(227, 401, 130, 24);
        add(text7);
        text7.setColumns(10);
        
        text8 = new JTextField();
        text8.setBounds(227, 457, 130, 24);
        add(text8);
        text8.setColumns(10);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO 自动生成的方法存根
        String[] s=new String[10];
        s[0]=text1.getText();
        s[1]=text2.getText();
        s[2]=text3.getText();
        s[3]=text4.getText();
        s[4]=text5.getText();
        s[5]=text6.getText();
        s[6]=text7.getText();
        s[7]=text8.getText();
        Query query=new Query();
        query.Connection();
        query.setSQL("insert into booktable values('"+s[0]+"','"+s[1]+"','"+s[2]+"','"+s[3]+"','"+s[4]+"','"+s[5]+"','"+s[6]+"','"+s[7]+"')");
        query.exeUpdate(query.getSQL());
        query.Release();
    }

}
View Code

管理员界面

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JMenu;
import javax.swing.JMenuItem;

public class Librarian extends Read implements ActionListener{
    JMenuItem in,show,borrow,returnbook,deletebook,updatebook;
    private JMenu menu;
    private JMenuItem menuItem;
    private JMenuItem menuItem_1;
    public static void main(String argsp[]){
        Librarian frame = new Librarian();
        frame.setVisible(true);
    }
    public Librarian(){
        in=new JMenuItem("图书入库");
        borrow=new JMenuItem("借书操作");
        returnbook=new JMenuItem("还书操作");
        deletebook=new JMenuItem("删除图书");
        updatebook=new JMenuItem("更新图书");
        menu1.add(updatebook);
        menu1.add(in);
        menu1.add(deletebook);
        
        menu = new JMenu("借书还书");
        menuBar.add(menu);
        
        menu.add(borrow);
        
        menu.add(returnbook);
        
        returnbook.addActionListener(this);
        borrow.addActionListener(this);
        in.addActionListener(this);
        deletebook.addActionListener(this);
        updatebook.addActionListener(this);
        
    }
    public void actionPerformed(ActionEvent e) {
        super.actionPerformed(e);
        if(e.getActionCommand()=="图书入库"){
            contentPane.add("In",new In());
            card.show(contentPane, "In");
        }
        else if(e.getActionCommand()=="借书操作"){
            contentPane.add("Borrow",new Borrow());
            card.show(contentPane, "Borrow");
//            System.out.println("11");
        }
        else if(e.getActionCommand()=="还书操作"){
            contentPane.add("ReturnBook",new ReturnBook());
            card.show(contentPane, "ReturnBook");
//            System.out.println("22");
        }
        else if(e.getActionCommand()=="删除图书"){
            contentPane.add("DeleteBook",new DeleteBook());
            card.show(contentPane, "DeleteBook");
//            System.out.println("22");
        }
        else if(e.getActionCommand()=="更新图书"){
            contentPane.add("UpdateBook",new UpdateBook());
            card.show(contentPane, "UpdateBook");
//            System.out.println("22");
        }
    }
}
View Code

数据库查询

import java.sql.*;
import javax.swing.JOptionPane;
public class Query {
       String tableName="";            //表名
       String SQL;                     //SQL语句
       Connection con;
       Statement sm; 
       ResultSet rs=null;
       Object[][] a;
       public Query() {
          try{  
              Class.forName("com.mysql.jdbc.Driver");
          }
          catch(ClassNotFoundException e) {
               JOptionPane.showMessageDialog(null, e.getMessage(),"连接出错",JOptionPane.ERROR_MESSAGE);
          }
       }
       public void setTableName(String s) {
          tableName=s.trim();
       }
       public String getTableName(){
           return tableName;
       }
       public Connection getCon(){
           return con;
       }
       public void setSQL(String SQL) {
          this.SQL=SQL.trim();
       }
       public void Connection() {
          try { 
               String uri="jdbc:mysql://localhost:3306/bookman"; 
               String id="kooing";
               String password="";
               con=DriverManager.getConnection(uri,id,password);
           }
           catch(SQLException e) {
               JOptionPane.showMessageDialog(null, e.getMessage(),"数据库连接出错",JOptionPane.ERROR_MESSAGE);
           }
       } 
       public String getSQL(){
           return SQL;
       }
       public ResultSet exeQuery(String s){
              try {
                  sm=con.createStatement();                  
                  rs=sm.executeQuery(s);
//                  sm.close();                   
               }
               catch(SQLException e) {
                   JOptionPane.showMessageDialog(null, e.getMessage(),"ִ执行SQL出错",JOptionPane.ERROR_MESSAGE);
               }
              return rs;
       }
       public int exeUpdate(String s){
           int count=0;
              try {
                  sm=con.createStatement();
                  count=sm.executeUpdate(s);
//                  sm.close();
               }
               catch(SQLException e) {
                   JOptionPane.showMessageDialog(null, e.getMessage(),"ִ执行SQL出错",JOptionPane.ERROR_MESSAGE);
               }
              return count;
       }
       public void Release(){
           try{
//               rs.close();
               sm.close();
               con.close();
               
           }
           catch(SQLException e) {
               JOptionPane.showMessageDialog(null, e.getMessage(),"关闭连接出错",JOptionPane.ERROR_MESSAGE);
           }
       }
       public int getRows(String s){
           try{
              sm=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
              rs=sm.executeQuery(s);
              rs.last();
              return(rs.getRow()); 
              
           }
           catch(SQLException e){return 0;}        
       }
       public Object[][] getRecord(String s){
           try{
               DatabaseMetaData metadata=con.getMetaData();
               ResultSet tableMessage=metadata.getColumns(null, null, tableName, null);
               int col=0;
             //得到结果集的列数
               while(tableMessage.next()){
                   col++;
               }
             //得到结果集的行数
               int n=getRows(s);
               a=new Object[n][col];
               rs=sm.executeQuery(s);
               int i=0;
               while(rs.next()){
                   for(int k=1;k<=col;k++){
                       a[i][k-1]=rs.getString(k);
                   }
                   i++;
               }                                             
           }
           catch(SQLException e){}
           return a;           
       }
}
View Code

读者类

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.CardLayout;

public class Read extends JFrame implements ActionListener {

    JPanel contentPane;
    private JLabel back=new JLabel();
    private JFrame frame=this;
    static private String id,password;
    JMenuBar menuBar ;
    JMenu menu1;
    CardLayout card;
    JPanel backPanel=new JPanel();
    UpdateId updateId=new UpdateId();

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Read frame = new Read();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Read() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 1020, 666);
        
        menuBar = new JMenuBar();
        menu1 = new JMenu("图书管理");
        
        setJMenuBar(menuBar);
        
        menuBar.add(menu1);
        
        
        JMenuItem Find = new JMenuItem("图书查询");
        menu1.add(Find);
        
        JMenu menu2 = new JMenu("账号管理");
        menuBar.add(menu2);
        
        JMenuItem UpdateId = new JMenuItem("修改密码");
        menu2.add(UpdateId);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        
        backPanel.add(back);
        
        URL url = this.getClass().getResource("/44.jpg");
        ImageIcon addIcon = new ImageIcon(url);
        back.setIcon(addIcon);
        
//        contentPane.add(back, "name_4101392509658");
        
        card=new CardLayout();
        contentPane.setLayout(card);
//        Find find=new Find();
//        System.out.println("aaa"+id);
//        System.out.println("aaa"+password);
        contentPane.add("backPanel",backPanel);
        contentPane.add("UpdateId",updateId);
        
        
        Find.addActionListener(this);
        UpdateId.addActionListener(this);
        
        this.addComponentListener(new ComponentAdapter(){        //为主面板添加窗口监听器
            @Override
            public void componentResized(ComponentEvent e)
            {//窗体变化背景图跟着变
                try{
                    backPanel.remove(back);
//                    System.out.println("111");
                    back = new JLabel();
//                    back.setBounds(frame.getX(),frame.getY(),frame.getWidth(), frame.getHeight());
                    
                    URL url = this.getClass().getResource("/44.jpg");
                    ImageIcon addIcon = new ImageIcon(url);
                    addIcon.setImage(addIcon.getImage().getScaledInstance(frame.getWidth(), frame.getHeight(),Image.SCALE_DEFAULT ));
                    back.setIcon(addIcon);
                    back.setSize(frame.getWidth(), frame.getHeight());
                    backPanel.add(back);
                }
                catch(Exception e1){
                    System.out.println(e1.getMessage());
                }
                
            }
        });
    }
    static void setId(String a,String b){
        id=a;
        password=b;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO 自动生成的方法存根
        if(e.getActionCommand()=="图书查询"){
            contentPane.add("Find",new Find());
            card.show(contentPane, "Find");
        }
        else if(e.getActionCommand()=="修改密码"){
            updateId.setId(id, password);
            card.show(contentPane, "UpdateId");
        }
    }
}
View Code

注册账号

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

public class Register extends JDialog implements ActionListener{

    private final JPanel contentPanel = new JPanel();
    private JTextField text1;
    private JTextField text2;
    ButtonGroup group1=new ButtonGroup();
    JRadioButton radio1 = new JRadioButton("管理员");
    JRadioButton radio2 = new JRadioButton("读者");

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        try {
            Register dialog = new Register();
            dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
            dialog.setVisible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * Create the dialog.
     */
    public Register() {
        setBounds(100, 100, 486, 354);
        getContentPane().setLayout(new BorderLayout());
        contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
        getContentPane().add(contentPanel, BorderLayout.CENTER);
        contentPanel.setLayout(null);
        setModal(true);
        
        JLabel label = new JLabel("用户");
        label.setBounds(61, 60, 72, 18);
        contentPanel.add(label);
        
        JLabel label_1 = new JLabel("密码");
        label_1.setBounds(61, 115, 72, 18);
        contentPanel.add(label_1);
        
        radio1.setBounds(121, 152, 82, 27);
        contentPanel.add(radio1);
        
        radio2.setBounds(226, 152, 157, 27);
        contentPanel.add(radio2);
        
        text1 = new JTextField();
        text1.setBounds(147, 57, 157, 24);
        contentPanel.add(text1);
        text1.setColumns(10);
        
        text2 = new JTextField();
        text2.setBounds(147, 112, 157, 24);
        contentPanel.add(text2);
        text2.setColumns(10);
        {
            JPanel buttonPane = new JPanel();
            buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
            getContentPane().add(buttonPane, BorderLayout.SOUTH);
            {
                JButton okButton = new JButton("OK");
                okButton.setActionCommand("OK");
                buttonPane.add(okButton);
                getRootPane().setDefaultButton(okButton);
                okButton.addActionListener(this);
            }
            group1.add(radio1);
            group1.add(radio2);
            radio1.setSelected(true);
        }
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO 自动生成的方法存根

        String s1=text1.getText();
        String s2=text2.getText();
        String s3="";
        if(radio1.isSelected())
            s3="librarian";
        else
            s3="read";
        if(!s1.equals("")&&!s2.equals("")&&!s3.equals("")){
            Query query=new Query();
            query.Connection();
            query.setTableName("idTable");
            query.setSQL("insert into idTable values('"+s1+"','"+s2+"','"+s3+"')");
            if(query.exeUpdate(query.getSQL())!=-1){
                JOptionPane.showMessageDialog(this, "注册成功");
            }
            query.Release();
            dispose();
        }
        else
            JOptionPane.showMessageDialog(this, "请正确填写");
    }
}
View Code

还书

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class ReturnBook extends JPanel implements ActionListener{
    JScrollPane scrollPane ;
    JTable table2;
    Object shuju[][];
    JButton button;
    public ReturnBook() {
        setLayout(null);
        
        button = new JButton("还书");
        button.setBounds(177, 353, 63, 27);
        add(button);
        button.addActionListener(this);
        
        table2=new JTable();
        Query query=new Query();
        query.Connection();
        query.setTableName("borrowtable");
        query.setSQL("select * from borrowtable");
        shuju=query.getRecord(query.getSQL());
        
        table2.setModel(new DefaultTableModel(shuju, new Object[]{"借书人","书本isbn"}));
        query.Release();
        scrollPane=new JScrollPane(table2);
        scrollPane.setBounds(96, 44, 193, 276);
        add(scrollPane);
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO 自动生成的方法存根
        DefaultTableModel model=(DefaultTableModel) table2.getModel();
        int row=table2.getSelectedRow();
        String s1=table2.getValueAt(row, 1).toString();
        String s2=table2.getValueAt(row, 0).toString();
        Query query=new Query();
        query.Connection();
        query.setSQL("select 现有数量 from booktable where isbn='"+s1+"'");
        ResultSet rs=query.exeQuery(query.getSQL());
        int number=0;
        try {
            rs.next();
            number=Integer.parseInt(rs.getString(1));
            number++;
        } catch (SQLException e1) {
            // TODO 自动生成的 catch 块
            e1.printStackTrace();
        }
        String s=String.valueOf(number);
        query.setSQL("update booktable set 现有数量='"+s+"' where isbn='"+s1+"'");
        query.exeUpdate(query.getSQL());
        
        query.setSQL("delete  from borrowtable where readid='"+s2+"' and bookid='"+s1+"'");
        query.exeUpdate(query.getSQL());
        
        model.removeRow(row);
        table2.repaint();
    }
}
View Code

登陆界面

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.net.URL;
import java.sql.ResultSet;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import java.awt.Font;

public class SignIn extends JFrame implements ActionListener {

    private JPanel contentPane;
    private JTextField text1;
    private JTextField text2;
    private JLabel back = new JLabel("New label");
    private JFrame frame=this;
    JRadioButton radio1 = new JRadioButton("管理员");
    JRadioButton radio2 = new JRadioButton("读者");
    ButtonGroup group=new ButtonGroup();
    String work;
    Query query=new Query();

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    SignIn frame = new SignIn();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public SignIn() {
        radio1.setSelected(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 1052, 692);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);
        
        JLayeredPane panel1 = new JLayeredPane();
        contentPane.add(panel1, BorderLayout.CENTER);
        
        JPanel panel = new JPanel();
        panel.setBounds(86, 273, 437, 298);
        panel1.add(panel);
        panel.setLayout(null);
        
        JLabel label = new JLabel("账号");
        label.setBounds(14, 64, 53, 18);
        panel.add(label);
        
        JLabel label_1 = new JLabel("密码");
        label_1.setBounds(14, 95, 72, 18);
        panel.add(label_1);
        
        text1 = new JTextField();
        text1.setBounds(57, 61, 135, 24);
        panel.add(text1);
        text1.setColumns(10);
        
        text2 = new JTextField();
        text2.setBounds(57, 95, 135, 24);
        panel.add(text2);
        text2.setColumns(10);
        
        JLabel label_2 = new JLabel("备注:没有账号的用户先填写下面信息再点注册按钮");
        label_2.setFont(new Font("方正兰亭超细黑简体", Font.PLAIN, 16));
        label_2.setBounds(0, -12, 437, 84);
        panel.add(label_2);
        
        JButton button1 = new JButton("登陆");
        button1.setBounds(0, 186, 113, 27);
        panel.add(button1);
        
        JButton button2 = new JButton("注册");
        button2.setBounds(127, 186, 113, 27);
        panel.add(button2);
        
        back.setBounds(0, -49, 1063, 747);

        URL url = this.getClass().getResource("/11.jpeg");
        ImageIcon addIcon = new ImageIcon(url);
        back.setIcon(addIcon);
        
        panel1.add(back);
        
        panel.setOpaque(false);
        
        radio1.setBounds(42, 133, 79, 27);
        group.add(radio1);
        
        radio2.setBounds(127, 133, 107, 27);
        group.add(radio2);
        
        panel.add(radio1);
        panel.add(radio2);
        
        radio1.setOpaque(false);
        radio2.setOpaque(false);
        
        radio1.addActionListener(this);
        radio2.addActionListener(this);
        
        button1.addActionListener(this);
        button2.addActionListener(this);
        
        this.addComponentListener(new ComponentAdapter(){        //为主面板添加窗口监听器
            @Override
            public void componentResized(ComponentEvent e)
            {//窗体变化背景图跟着变
                try{
                    panel1.remove(back);
//                    System.out.println("111");
                    back = new JLabel("New label");
//                    back.setBounds(frame.getX(),frame.getY(),frame.getWidth(), frame.getHeight());

                    URL url = this.getClass().getResource("/11.jpeg");
                    ImageIcon addIcon = new ImageIcon(url);
                    addIcon.setImage(addIcon.getImage().getScaledInstance(frame.getWidth(), frame.getHeight(),Image.SCALE_DEFAULT ));
                    back.setIcon(addIcon);
                    back.setSize(frame.getWidth(), frame.getHeight());
                    panel1.add(back);
                }
                catch(Exception e1){
                    System.out.println(e1.getMessage());
                }
                
            }
        });
        
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO 自动生成的方法存根

        if(e.getActionCommand()=="注册"){
//            Register register1=new Register();
            Register.main(null);
        }
        else if(e.getActionCommand()=="登陆"){
            query.Connection();
            query.setTableName("idTable");
            String s1=text1.getText();
            String s2=text2.getText();
            String s3=null;
            if(radio1.isSelected())
                s3="librarian";
            else
                s3="read";
            if(s1!=null&&s2!=null&&s3=="read"){
                try{
                    query.setSQL("select * from idTable where id='"+s1+"' AND passwork='"+s2+"'");
                    ResultSet rs=query.exeQuery(query.getSQL());
                    if(rs.next()){
                        Read.setId(s1, s2);
                        Read read1=new Read();
                        read1.main(null);
                        frame.setVisible(false);
                        query.Release();
                    }
                    else{
                        JOptionPane.showMessageDialog(frame, "账号密码错误");
                        text1.setText(null);
                        text2.setText(null);
                    }
                
                }
                catch(Exception e1){
                    System.out.println(e1.getMessage());
                }
            }
            else if(s1!=null&&s2!=null&&s3=="librarian"){
                try{
                    query.setSQL("select * from idTable where id='"+s1+"' AND passwork='"+s2+"'");
                    ResultSet rs=query.exeQuery(query.getSQL());
                    if(rs.next()){
                        Librarian.setId(s1, s2);
                        Librarian librarian1=new Librarian();
                        librarian1.main(null);
                        frame.setVisible(false);
                        query.Release();
                    }
                    else{
                        JOptionPane.showMessageDialog(frame, "账号密码错误");
                        text1.setText(null);
                        text2.setText(null);
                    }
                
                }
                catch(Exception e1){
                    System.out.println(e1.getMessage());
                }
            }
        }
    }
}
View Code

更新图书

import java.awt.event.ActionEvent;

import javax.swing.CellEditor;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.table.DefaultTableModel;

public class UpdateBook extends Find{
    public UpdateBook() {
        
        JButton button = new JButton("保存修改");
        button.setBounds(382, 232, 113, 27);
        add(button);
        
        button.addActionListener(this);
        
        JLabel lblenter = new JLabel("注意:1)一次只能改一个。");
        lblenter.setBounds(327, 198, 500, 27);
        add(lblenter);
    }
    public void actionPerformed(ActionEvent e){
        super.actionPerformed(e);
        if(e.getActionCommand()=="保存修改"){
            DefaultTableModel model = (DefaultTableModel) table.getModel();
            int row=table.getSelectedRow();
            int col=table.getSelectedColumn();
//            table.setEnabled(false);
            CellEditor ce =table.getCellEditor(row, col); 
            ce.stopCellEditing();  //取消所选单元格的编辑状态
            String s1=model.getValueAt(row, col).toString();
            String s2=model.getValueAt(row, 0).toString();
//            System.out.println(s1);
//            System.out.println(s2);
            
            Query query=new Query();
            query.Connection();
            query.setSQL("update booktable set "+biaoTou[col]+"='"+s1+"' where isbn='"+s2+"'");
            query.exeUpdate(query.getSQL());
            query.Release();
            table.repaint();
        }
    }
}
View Code

改账号

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class UpdateId extends JPanel implements ActionListener{
    private JTextField text1;
    private JTextField text2;
    String id;
    String password;
    /**
     * Create the panel.
     */
    public UpdateId() {
        setLayout(null);
        
        JLabel label = new JLabel("新账号");
        label.setBounds(42, 78, 72, 18);
        add(label);
        
        JLabel label_1 = new JLabel("新密码");
        label_1.setBounds(42, 140, 72, 18);
        add(label_1);
        
        text1 = new JTextField();
        text1.setBounds(111, 75, 112, 24);
        add(text1);
        text1.setColumns(10);
        
        text2 = new JTextField();
        text2.setBounds(111, 137, 112, 24);
        add(text2);
        text2.setColumns(10);
        
        JButton button = new JButton("确定");
        button.setBounds(73, 214, 113, 27);
        add(button);
        
        button.addActionListener(this);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO 自动生成的方法存根
        String s1=text1.getText();
        String s2=text2.getText();
        System.out.println(s1);
        System.out.println(s2);
        if(!s1.equals("")&&!s2.equals("")){
            Query query=new Query();
            query.Connection();
            query.setSQL("update idtable set id='"+s1+"' ,passwork='"+s2+"' where id='"+id+"' AND passwork='"+password+"'");
            query.exeUpdate(query.getSQL());
            query.Release();
        }
        else
            JOptionPane.showMessageDialog(this, "请正确填写");
//        System.out.println(s1);
//        System.out.println(s2);
//        System.out.println(id);
//        System.out.println(password);
    }
    void setId(String a,String b){
        id=a;
        password=b;
    }
}
View Code

 

posted on 2016-11-29 19:12  Kooing  阅读(360)  评论(0编辑  收藏  举报

导航