图书管理系统java代码实现

本文实例为大家分享了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   

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • javaWeb实现学生信息管理系统

    本文为大家分享了javaWeb实现学生信息管理系统,供大家参考,具体内容如下 初始版 初始版是没有加分页的.因为没怎么学过前端,界面很丑陋.主要技术:JSP,JavaBean,servlet,JDBC主要页面如下: 登录页面 主页 添加学生 查看所有学生 查询学生 工程目录 数据库 两个表,user表和student表.为了使用DBUtils工具,一定要注意数据库表的属性的命名和JavaBean的get(),set() 方法的匹配.比如t_user表里的uname,在JavaBean中是:pri

  • Java+Mysql学生管理系统源码

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:dingyelf@aliyun.com 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤:  

  • java学生管理系统界面简单实现(全)

    学生管理系统简单的实现,供初学Java Swing同学学习使用. import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import jav

  • Java GUI实现学生成绩管理系统

    学习java有一年多了,一直在做web方面的练习,在一个项目中发现需要用到GUI的相关知识,结果没法做出来,网上这方面的文章又不是很多,所有只好自己硬着头皮从头再学一遍了,不过学习后发现,其实GUI是非常有趣的,他并不像WEB程序一样依赖互联网,而且还有许多布局和android相差不是很大,这才发现自己竟又爱上GUI的开发了,不多说了,直接上代码吧,相信有过android或相关界面开发的都明白这其中的道理. 先看看效果吧 1.登录主界面 package edu.gzu.stuManager; i

  • java学生信息管理系统源代码

    本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] .删除 .查找.更改,供大家参考,具体内容如下 /*学生信息管理系统,实现学生信息: *增加 int[] a=new int[9] *删除 *查找 *更改 */ import java.util.Scanner;//导入java输入流 import java.lang.*; import java.io.*; class Student { private static Stude

  • java实现酒店管理系统

    本文实例为大家分享了java实现酒店管理系统的具体代码,供大家参考,具体内容如下 编写环境:MyEclipse2014+sql server2014 系统功能: 1.登录验证 2.房态统计显示 3.预定登记并入库 4.入住登记并入库 5.换房登记并入库 6.客人信息查询 7.退房并入库 运行界面如下: =====登录界面====== =====主界面===== =====为每个房间设置弹出菜单====== =====登记界面====== =====换房界面===== =====退房界面=====

  • Java+MySQL实现学生信息管理系统源码

    基于Java swing+MySQL实现学生信息管理系统:主要实现JDBC对学生信息进行增删改查,应付一般课设足矣,分享给大家.(由于篇幅原因,代码未全部列出,如有需要留下邮箱) 鉴于太多同学要源码,实在发不过来,上传到github上 https://github.com/ZhuangM/student.git 1. 开发环境:jdk7+MySQL5+win7 代码结构:model-dao-view 2. 数据库设计--建库建表语句: CREATE DATABASE student; DROP

  • 简单实现Java版学生管理系统

    本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWi

  • 图书管理系统java版

    本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询.插入.删除.修改. 内容:在数据库中创建一张书目信息表,包括书名.作者.出版社.出版日期.书号.价格字段.设计一个GUI界面进行书目管理.在该界面上有四个选项卡,分别是查询.插入.删除.修改.点击查询选项卡,出现的界面上有书名.作者.出版社.书号四个文本框,一个按钮和一个只读文本区.文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的"查询"按钮,可以在界面

  • 一个简陋的java图书管理系统

    本文代码为原创一个简陋的管理系统,只做功能的测试.并没有去完善所有应有的功能,只做了输入输出查找,仅供参考! 菜单部分: import java.util.Scanner; public class Menu { int Min = 1; int Max = 3; public void getMenu(){ System.out.println("1.显示/2.输入/3.查找"); } public void getFindMenu(){ System.out.println(&qu

随机推荐