《图书管理系统——java》

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:    《图书管理系统——java》                         
* 作    者:       刘江波                      
* 完成日期:    2012     年  3     月     1   日
* 版 本 号:    v3.0     

* 对任务及求解方法的描述部分
* 问题描述: 
* 程序头部的注释结束
*/

文件包的建立情况:

 

BookDao.java

 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.liu.dao;

import com.liu.po.BookBean;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author asus
 */
public class BookDAO {
     // 写
    public void writeBook(Map<Integer,BookBean >bookMap){
     //
        FileOutputStream fos = null;
        ObjectOutputStream oos = null;
        try {
            fos = new FileOutputStream("F:\\缓存区\\book.txt");
            oos = new ObjectOutputStream(fos);
            oos.writeObject(bookMap);
            //清空缓存区
            oos.flush();
        }
        catch (FileNotFoundException ex) {
                Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        //异常级别高的在后边
        catch (IOException ex) {
                Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        finally{
            try{
                //先开后闭
                 oos.close();
                 fos.close();
            }catch(IOException ex){
                Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE,null,ex);
            }
        }
    }

    //读
    public Map<Integer,BookBean>readBook(){
        FileInputStream fis = null;
        ObjectInputStream ois = null;
        Map<Integer, BookBean> map = null;
        try {
            fis = new FileInputStream("F:\\缓存区\\book.txt");
            ois = new ObjectInputStream(fis);
            map = (Map<Integer, BookBean>) ois.readObject();//出现异常进入catch
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (FileNotFoundException ex) {
            Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            //Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
            //ex.printStackTrace();
            map=new HashMap<Integer,BookBean>();//出现异常时,进行创建map
        } finally{
            try {
                if(ois!=null){
                    ois.close();
                }
                if(fis!=null){
                     fis.close();
                }

            } catch (IOException ex) {
                Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return map;
    }
}


 

TypeDao.java

 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.liu.dao;

import com.liu.po.TypeBean;
import java.io.*;
import java.util.*;
import java.util.logging.*;
/**
 *
 * 对文件进行读和写操作
 */
public class TypeDAO {

    // 写 
    public void writeType(Map<Integer,TypeBean >typeMap){
     // 
        FileOutputStream fos = null;
        ObjectOutputStream oos = null;
        try {
            fos = new FileOutputStream("F:\\缓存区\\type.txt");
            oos = new ObjectOutputStream(fos);
            oos.writeObject(typeMap);
            //清空缓存区
            oos.flush();
        }
        catch (FileNotFoundException ex) {
                Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        //异常级别高的在后边
        catch (IOException ex) {
                Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        finally{
            try{
                //先开后闭
                 oos.close();
                 fos.close();
            }catch(IOException ex){
                Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE,null,ex);
            }
        }  
    }
    
    //读
    public Map<Integer,TypeBean>readType(){
        FileInputStream fis = null;
        ObjectInputStream ois = null;
        Map<Integer, TypeBean> map = null;
        try {
            fis = new FileInputStream("F:\\缓存区\\type.txt");
            ois = new ObjectInputStream(fis);
            map = (Map<Integer, TypeBean>) ois.readObject();//出现异常进入catch
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (FileNotFoundException ex) {
            Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            //Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
            //ex.printStackTrace();
            map=new HashMap<Integer,TypeBean>();//出现异常时,进行创建map
        } finally{
            try {
                if(ois!=null){
                    ois.close();
                }
                if(fis!=null){
                     fis.close();
                }
               
            } catch (IOException ex) {
                Logger.getLogger(TypeDAO.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return map;
    }
}


 

 

 

BookBean.java

 

 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.liu.po;

import java.io.Serializable;

/**
 *
 * @author asus
 */
public class BookBean implements Serializable{

    private int id;
    private String bookName;
    private String bookType;
    private String memo;
    private String money;

    /**
     * @return the id
     */
    public int getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * @return the bookName
     */
    public String getBookName() {
        return bookName;
    }

    /**
     * @param bookName the bookName to set
     */
    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    /**
     * @return the bookType
     */
    public String getBookType() {
        return bookType;
    }

    /**
     * @param bookType the bookType to set
     */
    public void setBookType(String bookType) {
        this.bookType = bookType;
    }

    /**
     * @return the memo
     */
    public String getMemo() {
        return memo;
    }

    /**
     * @param memo the memo to set
     */
    public void setMemo(String memo) {
        this.memo = memo;
    }

    /**
     * @return the money
     */
    public String getMoney() {
        return money;
    }

    /**
     * @param money the money to set
     */
    public void setMoney(String money) {
        this.money = money;
    }
}


 

 

 

TypeBean.java

 

 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.liu.po;

/**
 *
 * @author asus
 */
import java.io.Serializable;

public class TypeBean implements Serializable{

    private int id;
    private String typeName;
    private String memo;

    /**
     * @return the id
     */
    public int getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * @return the typeName
     */
    public String getTypeName() {
        return typeName;
    }

    /**
     * @param typeName the typeName to set
     */
    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    /**
     * @return the memo
     */
    public String getMemo() {
        return memo;
    }

    /**
     * @param memo the memo to set
     */
    public void setMemo(String memo) {
        this.memo = memo;
    }

    
}


 

 

LoginForm.java

 

 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * LoginForm.java
 *
 * Created on 2013-2-26, 18:33:36
 */

package com.liu.view;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JOptionPane;

/**
 *
 * @author asus
 */
public class LoginForm extends javax.swing.JFrame {

    /** Creates new form LoginForm */
    public LoginForm() {
        initComponents();   
 }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        LoginName = new javax.swing.JTextField();
        LoginPwd = new javax.swing.JPasswordField();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("登陆界面");
        setBounds(new java.awt.Rectangle(300, 200, 0, 0));
        setIconImage(new javax.swing.ImageIcon(getClass().getResource("/com/liu/resouce/logo.jpg")).getImage());
        addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                formKeyPressed(evt);
            }
        });

        jLabel1.setFont(new java.awt.Font("宋体", 0, 36));
        jLabel1.setForeground(new java.awt.Color(204, 0, 0));
        jLabel1.setText("图书管理系统");

        jLabel2.setFont(new java.awt.Font("宋体", 0, 24));
        jLabel2.setText("用户名:");

        jLabel3.setFont(new java.awt.Font("宋体", 0, 24));
        jLabel3.setText("密码:");

        LoginName.setName(""); // NOI18N
        LoginName.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                LoginNameActionPerformed(evt);
            }
        });
        LoginName.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                LoginNameKeyPressed(evt);
            }
        });

        LoginPwd.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                LoginPwdKeyPressed(evt);
            }
        });

        jButton1.setFont(new java.awt.Font("宋体", 0, 24)); // NOI18N
        jButton1.setText("登录");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(97, 97, 97)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2)
                    .addComponent(jLabel3))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(LoginPwd)
                    .addComponent(LoginName, javax.swing.GroupLayout.DEFAULT_SIZE, 215, Short.MAX_VALUE))
                .addContainerGap(88, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(130, Short.MAX_VALUE)
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 263, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(113, 113, 113))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(299, Short.MAX_VALUE)
                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(110, 110, 110))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(50, 50, 50)
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(38, 38, 38)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(LoginName, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(26, 26, 26)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(LoginPwd, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(21, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void LoginNameActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
}                                         

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
        //1.先获取用户名和密码
        String name = LoginName.getText();
        String password = new String(LoginPwd.getPassword());
        //2.进行验证
        if("admin".equals(name)&&"admin".equals(password))
        {
            //登陆成功
            //隐藏LoginForm,显示MainForm
            this.setVisible(false);
            new MainForm().setVisible(true);
        }
        else
        {
            //登录失败
           JOptionPane.showMessageDialog(this, "用户名或密码错误!");
        }

    }                                        

    private void formKeyPressed(java.awt.event.KeyEvent evt) {                                
       //敲击键盘登陆
         
    }                               

    private void LoginNameKeyPressed(java.awt.event.KeyEvent evt) {                                     
        //敲击键盘登陆
        if(evt.getKeyText(evt.getKeyCode()).compareToIgnoreCase("Enter")==0)
        {
            jButton1.doClick(); 
        }
    }                                    

    private void LoginPwdKeyPressed(java.awt.event.KeyEvent evt) {                                    
        //敲击键盘登陆
        if(evt.getKeyText(evt.getKeyCode()).compareToIgnoreCase("Enter")==0)
        {
            jButton1.doClick();
        }
    }                                   

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new LoginForm().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JTextField LoginName;
    private javax.swing.JPasswordField LoginPwd;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    // End of variables declaration                   

}


 

 

 

MainForm.java

 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * MainForm.java
 *
 * Created on 2013-2-26, 18:35:25
 */

package com.liu.view;

/**
 *
 * @author asus
 */
public class MainForm extends javax.swing.JFrame {

    /** Creates new form MainForm */
    public MainForm() {
        initComponents();
        
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        配置管理 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem4 = new javax.swing.JMenuItem();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem3 = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("图书管理系统");
        setBounds(new java.awt.Rectangle(80, 60, 0, 0));
        setIconImage(new javax.swing.ImageIcon(getClass().getResource("/com/liu/resouce/logo.jpg")).getImage());

        jLabel1.setFont(new java.awt.Font("宋体", 0, 48));
        jLabel1.setForeground(new java.awt.Color(0, 204, 51));
        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/liu/resouce/main.jpg"))); // NOI18N

        jLabel2.setFont(new java.awt.Font("宋体", 0, 48));
        jLabel2.setForeground(new java.awt.Color(0, 0, 255));
        jLabel2.setText("欢迎使用图书借阅管理系统");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(38, 38, 38)
                .addComponent(jLabel2)
                .addContainerGap(63, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE))
        );

        配置管理.setText("配置管理");

        jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem1.setText("类别管理");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        配置管理.add(jMenuItem1);

        jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem2.setText("图书管理");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        配置管理.add(jMenuItem2);

        jMenuBar1.add(配置管理);

        jMenu2.setText("借书");

        jMenuItem4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_J, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem4.setText("租书");
        jMenu2.add(jMenuItem4);

        jMenuBar1.add(jMenu2);

        jMenu1.setText("还书");

        jMenuItem3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_H, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem3.setText("还书");
        jMenu1.add(jMenuItem3);

        jMenuBar1.add(jMenu1);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLabel1, 0, 0, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addGap(22, 22, 22)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 411, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        pack();
    }// </editor-fold>                        

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // 类型管理
         new TypeForm().setVisible(true);
    }                                          

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // 图书管理
        new BookForm().setVisible(true);
    }                                          

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MainForm().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JMenu 配置管理;
    // End of variables declaration                   

}


 

 

BookForm.java

 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * BookForm.java
 *
 * Created on 2013-2-28, 8:23:01
 */

package com.liu.view;

import com.liu.dao.BookDAO;
import com.liu.dao.TypeDAO;
import com.liu.po.BookBean;
import com.liu.po.TypeBean;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author asus
 */
public class BookForm extends javax.swing.JFrame {


    /** Creates new form BookForm */
    private Map<Integer,BookBean> map;
     private Map<Integer,TypeBean> map1;
    private BookDAO bookDao;
    private TypeDAO typeDao;
   
    public BookForm() {
        initComponents();
        bookDao = new BookDAO();
        typeDao = new TypeDAO();
        map = bookDao.readBook();
        map1 = typeDao.readType();
        initType();
       initData();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        bookTable = new javax.swing.JTable();
        jPanel2 = new javax.swing.JPanel();
        bmemo = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        bid = new javax.swing.JTextField();
        bname = new javax.swing.JTextField();
        btype = new javax.swing.JComboBox();
        jLabel5 = new javax.swing.JLabel();
        bmoney = new javax.swing.JTextField();

        setTitle("图书管理");
        setBounds(new java.awt.Rectangle(100, 50, 0, 0));
        setIconImage(new javax.swing.ImageIcon(getClass().getResource("/com/liu/resouce/logo.jpg")).getImage());

        bookTable.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18N
        bookTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null}
            },
            new String [] {
                "序号", "图书名称", "图书类型", "租金", "备注"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        bookTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                bookTableMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(bookTable);

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "详细信息", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("宋体", 0, 18))); // NOI18N

        bmemo.setFont(new java.awt.Font("宋体", 0, 18));

        jButton1.setText("新增");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("保存");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton3.setText("更新");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jButton4.setText("删除");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        jLabel1.setFont(new java.awt.Font("宋体", 0, 18));
        jLabel1.setText("序号:");

        jLabel2.setFont(new java.awt.Font("宋体", 0, 18));
        jLabel2.setText("名称:");

        jLabel3.setFont(new java.awt.Font("宋体", 0, 18));
        jLabel3.setText("类型:");

        jLabel4.setFont(new java.awt.Font("宋体", 0, 18));
        jLabel4.setText("备注:");

        bid.setFont(new java.awt.Font("宋体", 0, 18));

        bname.setFont(new java.awt.Font("宋体", 0, 18));

        btype.setFont(new java.awt.Font("宋体", 0, 18));
        btype.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "文学类", "教育类", "科技类", "文艺类" }));
        btype.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btypeActionPerformed(evt);
            }
        });

        jLabel5.setFont(new java.awt.Font("宋体", 0, 18));
        jLabel5.setText("租金:");

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(33, 33, 33)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 83, Short.MAX_VALUE)
                            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(jLabel3)
                                .addComponent(jLabel5)
                                .addComponent(jLabel4)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addGap(33, 33, 33)))
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(bmemo, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
                    .addComponent(bid, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
                    .addComponent(bname, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
                    .addComponent(bmoney, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(28, 28, 28)
                        .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(30, 30, 30)
                        .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
                        .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(btype, 0, 375, Short.MAX_VALUE))
                .addGap(65, 65, 65))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(bid, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(13, 13, 13)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(bname, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(btype, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(26, 26, 26)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(bmoney, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(32, 32, 32)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(bmemo, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(64, 64, 64)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addComponent(jLabel4))
                .addGap(22, 22, 22))
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 795, Short.MAX_VALUE)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(50, 50, 50)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(173, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(10, 10, 10)
                .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        
    //表格数据的初始化
    public void initData(){
        //加载数据
        DefaultTableModel dtm = (DefaultTableModel)bookTable.getModel();
        //清空表
        while(dtm.getRowCount()>0){
            dtm.removeRow(0);
        }
        //加载数据
        Set<Integer>set = map.keySet();
        for(Integer i:set){
            BookBean bean = map.get(i);
            Vector v = new Vector();
            v.add(bean.getId());
            v.add(bean.getBookName());
            v.add(bean.getBookType());
            v.add(bean.getMoney());
            v.add(bean.getMemo());
            dtm.addRow(v);
        }
    }
      //获取类别管理的所有类别
     public void initType(){
        Set<Integer> set = map1.keySet();
        DefaultComboBoxModel dcm = (DefaultComboBoxModel)btype.getModel();
        dcm.removeAllElements();
        for(Integer i:set){
            TypeBean bean = map1.get(i);
            dcm.addElement(bean.getTypeName());
        }

     }
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // 保存功能
         //先保存文本框里的值
        String id = bid.getText();
        String bookName = bname.getText();
        String bookType = (String) btype.getSelectedItem();
        String memo = bmemo.getText();
        String money = bmoney.getText();

        //封装成对象
        BookBean bean = new BookBean();

        bean.setId(Integer.parseInt(id));
        bean.setBookName(bookName);
        bean.setBookType(bookType);
        bean.setMemo(memo);
        bean.setMoney(money);

        //将bean放到map里面
               // Map<Integer,TypeBean>map = new HashMap<Integer,TypeBean>();
        map.put(Integer.parseInt(id), bean);
        //将map放到文件里面
        bookDao.writeBook(map);
        //刷新table
        initData();
    }                                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
         // 新增时,将文本框里的信息进行清空,并将序列号置为可编辑。
        bid.setEnabled(true);

        bid.setText("");
        bname.setText("");
        btype.setSelectedItem("");
        bmemo.setText("");
        bmoney.setText("");

    }                                        

    private void bookTableMouseClicked(java.awt.event.MouseEvent evt) {                                       
        //获取选中行号及序列号
        int currentRow = bookTable.getSelectedRow();
        //BookBean bean = map.get( currentRow);
         // 将选中的行,显示到信息栏中
        bid.setText((Integer) bookTable.getValueAt(currentRow, 0)+"");
        bname.setText((String) bookTable.getValueAt(currentRow, 1));
        btype.setSelectedItem((String) bookTable.getValueAt(currentRow, 2));
        bmoney.setText((String) bookTable.getValueAt(currentRow, 3));
        bmemo.setText((String) bookTable.getValueAt(currentRow, 4));

        //bmemo.setText(bean.getMemo());
    
        bid.setEnabled(false);  //序号框不可编辑
    }                                      

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
         // 删除操作
        //获取选中行号及序列号
        int currentRow = bookTable.getSelectedRow();
        int id = (Integer)bookTable.getValueAt(currentRow, 0);
        map.remove(id);
        bookDao.writeBook(map);
        JOptionPane.showMessageDialog(this,"类别删除成功");
        initData();
    }                                        

    private void btypeActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
}                                     

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // 更新操作
        //先保存文本框里的值
        int currentRow = bookTable.getSelectedRow();
        int id = (Integer) bookTable.getValueAt(currentRow, 0);

        String bookName = bname.getText();
        String bookType = (String) btype.getSelectedItem();
        String memo = bmemo.getText();
        String money = bmoney.getText();
        //封装成对象
        BookBean bean = new BookBean();
        bean.setId(id);
        bean.setBookName(bookName);
        bean.setBookType(bookType);
        bean.setMemo(memo);
        bean.setMoney(money);

        //将bean放到map里面
               // Map<Integer,TypeBean>map = new HashMap<Integer,TypeBean>();
        map.put(id, bean);
        //将map放到文件里面
        bookDao.writeBook(map);
        //刷新table
        JOptionPane.showMessageDialog(this,"类别更新成功");
        initData();
    }                                        

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new BookForm().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JTextField bid;
    private javax.swing.JTextField bmemo;
    private javax.swing.JTextField bmoney;
    private javax.swing.JTextField bname;
    private javax.swing.JTable bookTable;
    private javax.swing.JComboBox btype;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    // End of variables declaration                   

}


 

 

 

 

TypeForm.java

 

 


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * TypeForm.java
 *
 * Created on 2013-2-26, 19:07:51
 */

package com.liu.view;
import com.liu.dao.TypeDAO;
import com.liu.po.TypeBean;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author asus
 */
public class TypeForm extends javax.swing.JFrame {

    private TypeDAO typeDao;
    private Map<Integer,TypeBean> map;
    /** Creates new form TypeForm */
    public TypeForm() {
        initComponents();
        typeDao = new TypeDAO();
        map = typeDao.readType();
        initData();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        typeTable = new javax.swing.JTable();
        jPanel2 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        tid = new javax.swing.JTextField();
        tname = new javax.swing.JTextField();
        jScrollPane2 = new javax.swing.JScrollPane();
        tmemo = new javax.swing.JTextArea();
        jButton1 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        jButton5 = new javax.swing.JButton();

        setTitle("类型管理");
        setBounds(new java.awt.Rectangle(100, 50, 0, 0));
        setIconImage(new javax.swing.ImageIcon(getClass().getResource("/com/liu/resouce/logo.jpg")).getImage());

        typeTable.setFont(new java.awt.Font("宋体", 0, 18));
        typeTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null},
                {null, null, null},
                {null, null, null},
                {null, null, null}
            },
            new String [] {
                "序号", "类别名称", "备注"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Integer.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        typeTable.setColumnSelectionAllowed(true);
        typeTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                typeTableMouseClicked(evt);
            }
        });
        typeTable.addContainerListener(new java.awt.event.ContainerAdapter() {
            public void componentAdded(java.awt.event.ContainerEvent evt) {
                typeTableComponentAdded(evt);
            }
        });
        jScrollPane1.setViewportView(typeTable);
        typeTable.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_INTERVAL_SELECTION);
        typeTable.getColumnModel().getColumn(0).setResizable(false);
        typeTable.getColumnModel().getColumn(2).setResizable(false);

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "类别信息", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("宋体", 0, 18))); // NOI18N

        jLabel1.setFont(new java.awt.Font("宋体", 0, 18));
        jLabel1.setText("序号:");

        jLabel2.setFont(new java.awt.Font("宋体", 0, 18));
        jLabel2.setText("类别名称:");

        jLabel3.setFont(new java.awt.Font("宋体", 0, 18));
        jLabel3.setText("备注:");

        tid.setFont(new java.awt.Font("宋体", 0, 18));
        tid.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tidActionPerformed(evt);
            }
        });

        tname.setFont(new java.awt.Font("宋体", 0, 18));

        tmemo.setColumns(20);
        tmemo.setFont(new java.awt.Font("Monospaced", 0, 18));
        tmemo.setRows(5);
        jScrollPane2.setViewportView(tmemo);

        jButton1.setText("保存");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton3.setText("更新");
        jButton3.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton3MouseClicked(evt);
            }
        });
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jButton4.setText("删除");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        jButton5.setText("新增");
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(39, 39, 39)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(tname, javax.swing.GroupLayout.DEFAULT_SIZE, 341, Short.MAX_VALUE))
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 383, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addComponent(jLabel1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(tid, javax.swing.GroupLayout.DEFAULT_SIZE, 383, Short.MAX_VALUE))))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(70, 70, 70)
                        .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(41, 41, 41)
                        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(37, 37, 37)
                        .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 40, Short.MAX_VALUE)
                        .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(20, 20, 20)))
                .addGap(83, 83, 83))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(31, 31, 31)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(tid, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(27, 27, 27)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(tname, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(45, 45, 45)
                        .addComponent(jLabel3))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(24, 24, 24)
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(35, 35, 35)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18))
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(66, 66, 66)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(55, Short.MAX_VALUE))
            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 696, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 177, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 361, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    //表格数据的初始化
    public void initData(){
        //加载数据
        DefaultTableModel dtm = (DefaultTableModel)typeTable.getModel();
        //清空表
        while(dtm.getRowCount()>0){
            dtm.removeRow(0);
        }
        //加载数据
        Set<Integer>set = map.keySet();
        for(Integer i:set){
            TypeBean bean = map.get(i);
            Vector v = new Vector();
            v.add(bean.getId());
            v.add(bean.getTypeName());
            v.add(bean.getMemo());
            dtm.addRow(v);
        }
    }

    private void tidActionPerformed(java.awt.event.ActionEvent evt) {                                    
        // TODO add your handling code here:
}                                   

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //保存类型操作
       //先保存文本框里的值
        String id = tid.getText();
        String typeName = tname.getText();
        String memo = tmemo.getText();
        //封装成对象
        TypeBean bean = new TypeBean();
        bean.setId(Integer.parseInt(id));
        bean.setMemo(memo);
        bean.setTypeName(typeName);
        //将bean放到map里面
               // Map<Integer,TypeBean>map = new HashMap<Integer,TypeBean>();
        map.put(Integer.parseInt(id), bean);
        //将map放到文件里面
        typeDao.writeType(map);
        //刷新table
        initData();
    }                                        

    private void typeTableComponentAdded(java.awt.event.ContainerEvent evt) {                                         
        // TODO add your handling code here:
}                                        

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // 删除操作
        //获取选中行号及序列号
        int currentRow = typeTable.getSelectedRow();
        int id = (Integer)typeTable.getValueAt(currentRow, 0);
        map.remove(id);
        typeDao.writeType(map);
        JOptionPane.showMessageDialog(this,"类别删除成功");
        initData();
    }                                        

    private void jButton3MouseClicked(java.awt.event.MouseEvent evt) {                                      


    }                                     

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // 更新操作
        //先保存文本框里的值
        int currentRow = typeTable.getSelectedRow();
        int id = (Integer) typeTable.getValueAt(currentRow, 0);
        
        String typeName = tname.getText();
        String memo = tmemo.getText();
        //封装成对象
        TypeBean bean = new TypeBean();
        bean.setId(id);
        bean.setMemo(memo);
        bean.setTypeName(typeName);
        //将bean放到map里面
               // Map<Integer,TypeBean>map = new HashMap<Integer,TypeBean>();
        map.put(id, bean);
        //将map放到文件里面
        typeDao.writeType(map);
        //刷新table
        JOptionPane.showMessageDialog(this,"类别更新成功");
        initData();
    }                                        

    private void typeTableMouseClicked(java.awt.event.MouseEvent evt) {                                       
         //获取选中行号及序列号
        int currentRow = typeTable.getSelectedRow();
         // 将选中的行,显示到信息栏中
        tid.setText((Integer) typeTable.getValueAt(currentRow, 0)+"");
        tname.setText((String) typeTable.getValueAt(currentRow, 1));
        tmemo.setText((String) typeTable.getValueAt(currentRow, 2));

        tid.setEnabled(false);  //序号框不可编辑

    }                                      

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // 新增时,将文本框里的信息进行清空,并将序列号置为可编辑。
        tid.setEnabled(true);
        tid.setText("");
        tname.setText("");
        tmemo.setText("");

    }                                        

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TypeForm().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextField tid;
    private javax.swing.JTextArea tmemo;
    private javax.swing.JTextField tname;
    private javax.swing.JTable typeTable;
    // End of variables declaration                   

}





 

  • 53
    点赞
  • 160
    收藏
    觉得还不错? 一键收藏
  • 196
    评论
Java图书馆管理系统附全代码课程设计报告完整版 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第1页。Java图书馆管理系统附全代码课程设计报告 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第1页。 《数据库系统概论》课程报告 课题名称: 小型图书管理系统 课题负责人名(学号): best 同组成员名单(角色): 指导教师: 评阅成绩: Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第2页。评阅意见: Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第2页。 提交报告时间:2015年12月15日 小型图书管理系统 计算机科学与技术 专业 学生 指导老师 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第3页。[摘要] 随着计算机技术的飞速发展,利用计算机来获得和处理信息是当今信息管理的一大特点。伴随计算机硬件的快速发展,有关信息管理的软件——数据库系统软件也在迅猛发展着。图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。由于图书馆主要从事大量的图书资料的储存和流通。所以一直以来,计算机在图书馆的图书管理中得到了广泛的应用。本系统实现图书信息管理的系统化,规范化和自动化,以最大程度提高操作人员的办公效率。 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第3页。 关键词:JAVA、JDBC、SQL Server、数据库、图书馆管理 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第4页。 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第4页。 一、实验题目:小型图书管理系统 二、实验的目的和要求: 完成一个小型图书管理系统,功能要求如下: 1)能够通过书籍基本信息(包括:书号、书名、出版社、出版日期、作者、内容摘要)单个或以AND方式组合多个条件查询书籍信息; 2)对于每一种书籍,除可查看其基本信息之外还可查看其总数以及目前在馆数量 3)可增添新的书籍 4)可删除已有书籍(如有读者借了该书籍尚未归还,则不允许删除) 5)可修改书籍的基本信息 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第5页。6)能够通过读者基本信息(包括:证号、姓名、性别、系名、年级)单个或以AND方式组合多个条件查询读者信息 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第5页。 7)对于每位读者除可查看其基本信息之外,还可查看其已借的书籍列表、数量、借还日期 8)可增添新的读者 9)可删除已有读者(如该读者有尚未归还的借书,则不允许删除) 10)可修改读者的基本信息 11)可完成借还书籍的手续 12)还书时如超期,应该显示超期天数 13)借书时如果有超期的书没有还,则不允许借书 14)可查询有哪些读者有超期的书没有还,列出这些读者的基本信息 三、实验的环境: 1、硬件环境:CPU: Intel(R) Core i5-3230 2.60GHz RAM: 8GB Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第6页。2、软件环境:操作系统:Windows 7 Ultimate SP1 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第6页。 编译软件:Eclipse Luna Microsoft SQL Server 2014 四、系统ER图 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第7页。五、表结构定义(使用表格说明) Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第7页。 Java图书馆管理系统附全代码课程设计报告 整版全文共205页,当前为第8页。Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第9页。 Java图书馆管理系统附全代码课程设计报告 整版全文共205页,当前为第8页。 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第9页。 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第10页。 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第10页。 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第11页。六、系统功能模块 Java图书馆管理系统附全代码课程设计报告完整版

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值