亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Eclipse+Java+Swing實現(xiàn)圖書管理系統(tǒng)(詳細(xì)代碼)

 更新時間:2022年01月26日 16:36:08   作者:水堅石青?  
這篇文章主要介紹了Eclipse+Java+Swing實現(xiàn)圖書管理系統(tǒng)并附上詳細(xì)代碼,需要的小伙伴可以參考一下,希望對你有所幫助

一、系統(tǒng)介紹

該系統(tǒng)實現(xiàn)用戶注冊登錄功能。用戶端實現(xiàn)書籍查詢,借書,還書功能。用戶能夠查詢自己的借書記錄。管理員能夠上架圖書,下架圖書,添加圖書類別,修改圖書類別,刪除圖書類別,添加圖書信息,修改圖書信息,修改用戶信息,查詢圖書借閱歸還記錄。

二、系統(tǒng)展示

1.注冊

2.登錄

3.用戶端-圖書查詢及借閱

4.用戶端-借閱記錄及歸還

5.管理員端-添加圖書類別

6.管理員端-修改圖書類別

7.管理員端-添加圖書

8.管理員端-修改圖書

9.管理員端-管理用戶信息

10.管理員端-查詢借閱信息

三、部分代碼

基本類什么的就不列出來了,直接上頁面。

AdminMainFrm.java

package com.sjsq.view;

import java.awt.event.ActionEvent;

import javax.swing.GroupLayout;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.WindowConstants;

public class AdminMainFrm extends JFrame {

?? ?private JDesktopPane jD_table;
?? ?private JMenu jMenu1;
?? ?private JMenu jMenu2;
?? ?private JMenu jMenu3;
?? ?private JMenu jMenu4;
?? ?private JMenuBar jMenuBar1;
?? ?private JMenuItem jMenuItem1;
?? ?private JMenuItem jMenuItem2;
?? ?private JMenuItem jMenuItem3;
?? ?private JMenuItem jMenuItem4;
?? ?private JMenuItem jMenuItem5;
?? ?private JMenuItem jMenuItem6;
?? ?private JMenuItem jMenuItem7;
?? ?
?? ?
?? ?public AdminMainFrm() {
?? ??? ?initComponents();
?? ??? ?// 設(shè)置位置
?? ??? ?setBounds(100, 200, 1050, 650);
?? ??? ?// 居中顯示
?? ??? ?this.setLocationRelativeTo(null);
?? ?}

?? ?private void initComponents() {

?? ??? ?jD_table = new JDesktopPane();
?? ??? ?jMenuBar1 = new JMenuBar();
?? ??? ?jMenu1 = new JMenu();
?? ??? ?jMenu2 = new JMenu();
?? ??? ?jMenuItem1 = new JMenuItem();
?? ??? ?jMenuItem2 = new JMenuItem();
?? ??? ?jMenu3 = new JMenu();
?? ??? ?jMenuItem4 = new JMenuItem();
?? ??? ?jMenuItem5 = new JMenuItem();
?? ??? ?jMenu4 = new JMenu();
?? ??? ?jMenuItem6 = new JMenuItem();
?? ??? ?jMenuItem7 = new JMenuItem();
?? ??? ?jMenuItem3 = new JMenuItem();

?? ??? ?setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
?? ??? ?setTitle("管理員主界面");

?? ??? ?jMenu1.setText("基本數(shù)據(jù)管理");

?? ??? ?jMenu2.setText("類別管理");
?? ??? ?jMenu2.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jMenu2ActionPerformed(evt);
?? ??? ??? ?}

?? ??? ??? ?private void jMenu2ActionPerformed(ActionEvent evt) {
?? ??? ??? ??? ?

?? ??? ??? ?}
?? ??? ?});

?? ??? ?jMenuItem1.setText("圖書類別添加");
?? ??? ?jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jMenuItem1ActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});
?? ??? ?jMenu2.add(jMenuItem1);

?? ??? ?jMenuItem2.setText("圖書類別修改");
?? ??? ?jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jMenuItem2ActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});
?? ??? ?jMenu2.add(jMenuItem2);

?? ??? ?jMenu1.add(jMenu2);

?? ??? ?jMenu3.setText("書籍管理");

?? ??? ?jMenuItem4.setText("書籍添加");
?? ??? ?jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jMenuItem4ActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});
?? ??? ?jMenu3.add(jMenuItem4);

?? ??? ?jMenuItem5.setText("書籍修改");
?? ??? ?jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jMenuItem5ActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});
?? ??? ?jMenu3.add(jMenuItem5);

?? ??? ?jMenu1.add(jMenu3);

?? ??? ?jMenu4.setText("用戶管理");

?? ??? ?jMenuItem6.setText("用戶信息");
?? ??? ?jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jMenuItem6ActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});
?? ??? ?jMenu4.add(jMenuItem6);

?? ??? ?jMenuItem7.setText("借還信息");
?? ??? ?jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jMenuItem7ActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});
?? ??? ?jMenu4.add(jMenuItem7);

?? ??? ?jMenu1.add(jMenu4);

?? ??? ?jMenuItem3.setText("退出系統(tǒng)");
?? ??? ?jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jMenuItem3ActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});
?? ??? ?jMenu1.add(jMenuItem3);

?? ??? ?jMenuBar1.add(jMenu1);

?? ??? ?setJMenuBar(jMenuBar1);

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addComponent(jD_table, GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addComponent(jD_table, GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE));

?? ??? ?pack();
?? ?}
?? ??? ?

?? ?// 借還信息
?? ?private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?BorrowDetailFrm b = new BorrowDetailFrm();
?? ??? ?b.setVisible(true);
?? ??? ?this.jD_table.add(b);
?? ?}

?? ?// 用戶信息
?? ?private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?UserInfoFrm userInfoFrm = new UserInfoFrm();
?? ??? ?userInfoFrm.setVisible(true);
?? ??? ?this.jD_table.add(userInfoFrm);
?? ?}

?? ?private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?BookTypeAddFrm addFrm = new BookTypeAddFrm();
?? ??? ?addFrm.setVisible(true);
?? ??? ?this.jD_table.add(addFrm);
?? ?}

?? ?private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?BookManagerFrm bookManagerFrm = new BookManagerFrm();
?? ??? ?bookManagerFrm.setVisible(true);
?? ??? ?this.jD_table.add(bookManagerFrm);

?? ?}

?? ?private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?BookAddFrm bookAddFrm = new BookAddFrm();
?? ??? ?bookAddFrm.setVisible(true);
?? ??? ?this.jD_table.add(bookAddFrm);
?? ?}

?? ?private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?BookTypeManagerFrm bookTypeManagerFrm = new BookTypeManagerFrm();
?? ??? ?bookTypeManagerFrm.setVisible(true);
?? ??? ?this.jD_table.add(bookTypeManagerFrm);
?? ?}

?? ?private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?int i = JOptionPane.showConfirmDialog(null, "確認(rèn)退出系統(tǒng)");
?? ??? ?if (i == 0) {
?? ??? ??? ?this.dispose();
?? ??? ?}
?? ?}

?? ?public static void main(String args[]) {
?? ??? ?java.awt.EventQueue.invokeLater(new Runnable() {
?? ??? ??? ?public void run() {
?? ??? ??? ??? ?new AdminMainFrm().setVisible(true);
?? ??? ??? ?}
?? ??? ?});
?? ?}
}

BookAddFrm.java

package com.sjsq.view;

import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.table.DefaultTableModel;

import com.sjsq.dao.BookDao;
import com.sjsq.dao.BorrowDetailDao;
import com.sjsq.model.Book;
import com.sjsq.model.BorrowDetail;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;
import com.sjsq.util.TimeUtil;

public class BookInfoFrm extends JInternalFrame {
?? ?
?? ?private JTextField bookIdText;
?? ?private JTextField bookName;
?? ?private JTextField bookNameText;
?? ?private JTable bookTable;
?? ?private JButton jB_borrow;
?? ?private JButton jButton1;
?? ?private JLabel jLabel1;
?? ?private JLabel jLabel2;
?? ?private JLabel jLabel3;
?? ?private JPanel jPanel1;
?? ?private JScrollPane jScrollPane1;
?? ?
?? ?DbUtil dbUtil = new DbUtil();
?? ?BookDao bookDao = new BookDao();
?? ?BorrowDetailDao borrowDetailDao = new BorrowDetailDao();

?? ?
?? ?public BookInfoFrm() {
?? ??? ?initComponents();
?? ??? ?fillTable(new Book());
?? ??? ?setTitle("書籍信息");
?? ??? ?this.setLocation(200, 50);
?? ?}

?? ?private void fillTable(Book book) {
?? ??? ?DefaultTableModel model = (DefaultTableModel) bookTable.getModel();
?? ??? ?model.setRowCount(0);
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?book.setStatus(1);
?? ??? ??? ?ResultSet list = bookDao.list(con, book);
?? ??? ??? ?while (list.next()) {
?? ??? ??? ??? ?Vector rowData = new Vector();
?? ??? ??? ??? ?rowData.add(list.getInt("id"));
?? ??? ??? ??? ?rowData.add(list.getString("book_name"));
?? ??? ??? ??? ?rowData.add(list.getString("type_name"));
?? ??? ??? ??? ?rowData.add(list.getString("author"));
?? ??? ??? ??? ?rowData.add(list.getString("remark"));
?? ??? ??? ??? ?model.addRow(rowData);
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?
?? ?private void initComponents() {

?? ??? ?jScrollPane1 = new JScrollPane();
?? ??? ?bookTable = new JTable();
?? ??? ?jPanel1 = new JPanel();
?? ??? ?jLabel1 = new JLabel();
?? ??? ?bookNameText = new JTextField();
?? ??? ?jButton1 = new JButton();
?? ??? ?jB_borrow = new JButton();
?? ??? ?jLabel2 = new JLabel();
?? ??? ?bookIdText = new JTextField();
?? ??? ?jLabel3 = new JLabel();
?? ??? ?bookName = new JTextField();

?? ??? ?setClosable(true);

?? ??? ?bookTable.setModel(new DefaultTableModel(new Object[][] {

?? ??? ?}, new String[] { "編號", "書名", "類型", "作者", "描述" }) {
?? ??? ??? ?boolean[] canEdit = new boolean[] { false, false, false, false, false };

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

?? ??? ?jLabel1.setText("書籍名稱:");

?? ??? ?bookNameText.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?bookNameTextActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});

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

?? ??? ?GroupLayout jPanel1Layout = new GroupLayout(jPanel1);
?? ??? ?jPanel1.setLayout(jPanel1Layout);
?? ??? ?jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ?.addGap(42, 42, 42).addComponent(jLabel1).addGap(36, 36, 36)
?? ??? ??? ??? ??? ??? ?.addComponent(bookNameText, GroupLayout.PREFERRED_SIZE, 130,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 149, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addComponent(jButton1).addGap(45, 45, 45)));
?? ??? ?jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addGap(23, 23, 23)
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jButton1).addComponent(jLabel1).addComponent(bookNameText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ?.addContainerGap(30, Short.MAX_VALUE)));

?? ??? ?jB_borrow.setText("借書");
?? ??? ?jB_borrow.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jB_borrowActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});

?? ??? ?jLabel2.setText("編號:");

?? ??? ?bookIdText.setEditable(false);

?? ??? ?jLabel3.setText("書名:");

?? ??? ?bookName.setEditable(false);

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ?.createSequentialGroup().addGap(22, 22, 22)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ??? ??? ?.createSequentialGroup().addComponent(jLabel2)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
?? ??? ??? ??? ??? ??? ?.addComponent(bookIdText, GroupLayout.PREFERRED_SIZE, 95,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel3)
?? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ?.addComponent(bookName, GroupLayout.PREFERRED_SIZE, 127,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 102, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addComponent(jB_borrow).addGap(88, 88, 88))
?? ??? ??? ??? ??? ??? ?.addGroup(layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jPanel1, GroupLayout.Alignment.TRAILING,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.Alignment.TRAILING,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, 507, Short.MAX_VALUE))
?? ??? ??? ??? ??? ??? ??? ??? ?.addContainerGap(38, Short.MAX_VALUE)))));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ?.addComponent(jPanel1, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
?? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 225,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 35, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel2).addComponent(jLabel3)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(bookIdText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(bookName, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jB_borrow))
?? ??? ??? ??? ??? ??? ?.addGap(27, 27, 27)));

?? ??? ?pack();
?? ?}
?? ??? ?

?? ?private void jB_borrowActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String bookId = this.bookIdText.getText();
?? ??? ?String bookName = this.bookName.getText();
?? ??? ?if (StringUtil.isEmpty(bookId) || StringUtil.isEmpty(bookName)) {
?? ??? ??? ?JOptionPane.showMessageDialog(null, "請選擇相關(guān)書籍");
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?BorrowDetail borrowDetail = new BorrowDetail();
?? ??? ?borrowDetail.setUserId(LoginFrm.currentUser.getUserId());
?? ??? ?borrowDetail.setBookId(Integer.parseInt(bookId));
?? ??? ?borrowDetail.setStatus(1);
?? ??? ?borrowDetail.setBorrowTime(TimeUtil.getTime());
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();

?? ??? ??? ?// 先查詢是否有該書在借
?? ??? ??? ?ResultSet list = borrowDetailDao.list(con, borrowDetail);
?? ??? ??? ?while (list.next()) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "該書已在借,請先還再借");
?? ??? ??? ??? ?return;
?? ??? ??? ?}
?? ??? ??? ?int i = borrowDetailDao.add(con, borrowDetail);
?? ??? ??? ?if (i == 1) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "借書成功");
?? ??? ??? ?} else {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "借書失敗");
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?JOptionPane.showMessageDialog(null, "借書異常");
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}

?? ?}

?? ?private void bookTableMousePressed(java.awt.event.MouseEvent evt) {
?? ??? ?int row = this.bookTable.getSelectedRow();
?? ??? ?Object bookId = this.bookTable.getValueAt(row, 0);
?? ??? ?Object bookName = this.bookTable.getValueAt(row, 1);
?? ??? ?this.bookIdText.setText(bookId.toString());
?? ??? ?this.bookName.setText(bookName.toString());
?? ?}

?? ?private void bookNameTextActionPerformed(java.awt.event.ActionEvent evt) {
?? ?}

?? ?private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String bookName = this.bookNameText.getText();
?? ??? ?Book book = new Book();
?? ??? ?book.setBookName(bookName);
?? ??? ?fillTable(book);
?? ?}

}

BookManagerFrm.java

package com.sjsq.view;

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.table.DefaultTableModel;

import com.sjsq.dao.BookDao;
import com.sjsq.dao.BookTypeDao;
import com.sjsq.model.Book;
import com.sjsq.model.BookType;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;

public class BookManagerFrm extends JInternalFrame {
?? ?
?? ?private JTextField authorText;
?? ?private JTextField bookId;
?? ?private JTextField bookName;
?? ?private JTextField bookNameText;
?? ?private JTable bookTable;
?? ?private JButton jButton1;
?? ?private JButton jButton2;
?? ?private JComboBox jCB_status;
?? ?private JComboBox jCB_type2;
?? ?private JLabel jLabel1;
?? ?private JLabel jLabel10;
?? ?private JLabel jLabel11;
?? ?private JLabel jLabel3;
?? ?private JLabel jLabel4;
?? ?private JLabel jLabel5;
?? ?private JLabel jLabel6;
?? ?private JLabel jLabel7;
?? ?private JLabel jLabel8;
?? ?private JLabel jLabel9;
?? ?private JPanel jPanel1;
?? ?private JPanel jPanel2;
?? ?private JScrollPane jScrollPane1;
?? ?private JTextField numberText;
?? ?private JTextField priceText;
?? ?private JTextField publishText;
?? ?private JTextField remarkText;
?? ?
?? ?
?? ?DbUtil dbUtil = new DbUtil();
?? ?BookTypeDao bookTypeDao = new BookTypeDao();
?? ?BookDao bookDao = new BookDao();

?? ?
?? ?public BookManagerFrm() {
?? ??? ?initComponents();
?? ??? ?this.jCB_status.addItem("上架");
?? ??? ?this.jCB_status.addItem("下架");
?? ??? ?fillBookTable(new Book());
?? ??? ?fillBookType();
?? ??? ?setTitle("書籍修改");
?? ??? ?this.setLocation(125, 10);
?? ?}

?? ?private void fillBookType() {
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?ResultSet list = bookTypeDao.list(con, new BookType());
?? ??? ??? ?while (list.next()) {
?? ??? ??? ??? ?BookType bookType = new BookType();
?? ??? ??? ??? ?bookType.setTypeId(list.getInt("id"));
?? ??? ??? ??? ?bookType.setTypeName(list.getString("type_name"));
?? ??? ??? ??? ?this.jCB_type2.addItem(bookType);
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?private void fillBookTable(Book book) {
?? ??? ?DefaultTableModel model = (DefaultTableModel) bookTable.getModel();
?? ??? ?model.setRowCount(0);
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?ResultSet resultSet = bookDao.list(con, book);
?? ??? ??? ?while (resultSet.next()) {
?? ??? ??? ??? ?Vector rowData = new Vector();
?? ??? ??? ??? ?rowData.add(resultSet.getInt("id"));
?? ??? ??? ??? ?rowData.add(resultSet.getString("book_name"));
?? ??? ??? ??? ?rowData.add(resultSet.getString("type_name"));
?? ??? ??? ??? ?rowData.add(resultSet.getString("author"));
?? ??? ??? ??? ?rowData.add(resultSet.getDouble("price"));
?? ??? ??? ??? ?rowData.add(resultSet.getInt("number"));
?? ??? ??? ??? ?if (resultSet.getInt("status") == 1) {
?? ??? ??? ??? ??? ?rowData.add("上架");
?? ??? ??? ??? ?} else {
?? ??? ??? ??? ??? ?rowData.add("下架");
?? ??? ??? ??? ?}
?? ??? ??? ??? ?model.addRow(rowData);
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?
?? ?
?? ?private void initComponents() {

?? ??? ?jPanel1 = new JPanel();
?? ??? ?jLabel1 = new JLabel();
?? ??? ?bookNameText = new JTextField();
?? ??? ?jButton1 = new JButton();
?? ??? ?jScrollPane1 = new JScrollPane();
?? ??? ?bookTable = new JTable();
?? ??? ?jPanel2 = new JPanel();
?? ??? ?jLabel3 = new JLabel();
?? ??? ?bookId = new JTextField();
?? ??? ?jLabel4 = new JLabel();
?? ??? ?bookName = new JTextField();
?? ??? ?jLabel5 = new JLabel();
?? ??? ?authorText = new JTextField();
?? ??? ?jLabel6 = new JLabel();
?? ??? ?publishText = new JTextField();
?? ??? ?jLabel7 = new JLabel();
?? ??? ?priceText = new JTextField();
?? ??? ?jLabel8 = new JLabel();
?? ??? ?numberText = new JTextField();
?? ??? ?jLabel9 = new JLabel();
?? ??? ?jLabel10 = new JLabel();
?? ??? ?jCB_type2 = new JComboBox();
?? ??? ?jLabel11 = new JLabel();
?? ??? ?remarkText = new JTextField();
?? ??? ?jButton2 = new JButton();
?? ??? ?jCB_status = new JComboBox();

?? ??? ?setClosable(true);

?? ??? ?jPanel1.setBorder(BorderFactory.createTitledBorder("查詢操作"));

?? ??? ?jLabel1.setText("書名:");

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

?? ??? ?GroupLayout jPanel1Layout = new GroupLayout(jPanel1);
?? ??? ?jPanel1.setLayout(jPanel1Layout);
?? ??? ?jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addGap(25, 25, 25).addComponent(jLabel1)
?? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ?.addComponent(bookNameText, GroupLayout.PREFERRED_SIZE, 171,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addGap(62, 62, 62).addComponent(jButton1).addContainerGap(299, Short.MAX_VALUE)));
?? ??? ?jPanel1Layout
?? ??? ??? ??? ?.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
?? ??? ??? ??? ??? ??? ??? ??? ?.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel1)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(bookNameText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jButton1)).addContainerGap(22, Short.MAX_VALUE)));

?? ??? ?bookTable.setModel(new DefaultTableModel(new Object[][] {

?? ??? ?}, new String[] { "編號", "書名", "類別", "作者", "價格", "庫存", "狀態(tài)" }) {
?? ??? ??? ?boolean[] canEdit = new boolean[] { false, false, false, false, false, false, false };

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

?? ??? ?jPanel2.setBorder(BorderFactory.createTitledBorder("書籍操作"));

?? ??? ?jLabel3.setText("編號:");

?? ??? ?bookId.setEditable(false);

?? ??? ?jLabel4.setText("書名:");

?? ??? ?jLabel5.setText("作者:");

?? ??? ?jLabel6.setText("出版:");

?? ??? ?jLabel7.setText("價格:");

?? ??? ?jLabel8.setText("庫存:");

?? ??? ?jLabel9.setText("狀態(tài):");

?? ??? ?jLabel10.setText("類別:");

?? ??? ?jLabel11.setText("描述:");

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

?? ??? ?GroupLayout jPanel2Layout = new GroupLayout(jPanel2);
?? ??? ?jPanel2.setLayout(jPanel2Layout);
?? ??? ?jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(
?? ??? ??? ??? ??? ??? ??? ??? ?jPanel2Layout.createSequentialGroup().addGap(26, 26, 26).addGroup(jPanel2Layout
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?jPanel2Layout.createSequentialGroup().addComponent(jLabel9)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addPreferredGap(
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?LayoutStyle.ComponentPlacement.RELATED)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jCB_status, 0, 117, Short.MAX_VALUE))
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(GroupLayout.Alignment.TRAILING,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?jPanel2Layout
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.createSequentialGroup().addGroup(jPanel2Layout
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.createParallelGroup(
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel3).addComponent(jLabel6))
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addPreferredGap(
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?LayoutStyle.ComponentPlacement.RELATED,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.createParallelGroup(
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.Alignment.TRAILING,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?false)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(publishText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(bookId,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.Alignment.LEADING,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, 117,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?Short.MAX_VALUE))))
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(39, 39, 39)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createParallelGroup(
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.Alignment.LEADING, false)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel10)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(27, 27,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?27)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jCB_type2, 0,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(GroupLayout.Alignment.TRAILING,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?jPanel2Layout.createSequentialGroup().addComponent(jLabel7)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(27, 27, 27).addComponent(priceText))
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel4)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(27, 27, 27).addComponent(
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?bookName, GroupLayout.PREFERRED_SIZE, 108,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)))
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel11)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18).addComponent(remarkText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, 172,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.createParallelGroup(GroupLayout.Alignment.TRAILING,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?false)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(GroupLayout.Alignment.LEADING,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?jPanel2Layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel8).addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(numberText))
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(GroupLayout.Alignment.LEADING,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?jPanel2Layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel5).addGap(20, 20, 20)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(authorText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?106,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))))
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(97, 97, 97))
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup().addGap(108, 108, 108)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jButton2)))
?? ??? ??? ??? ??? ??? ?.addContainerGap()));
?? ??? ?jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup().addGroup(jPanel2Layout
?? ??? ??? ??? ??? ??? ?.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup().addGroup(jPanel2Layout
?? ??? ??? ??? ??? ??? ??? ??? ?.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel3)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(bookId, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel6)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(publishText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel7)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(priceText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel8).addComponent(numberText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel9)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jCB_status, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel10)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jCB_type2, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel11).addComponent(remarkText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)))
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel4)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(bookName, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(authorText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel5)))
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 42, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addComponent(jButton2).addGap(28, 28, 28)));

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ?.createSequentialGroup().addGap(31, 31, 31)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING, false)
?? ??? ??? ??? ??? ??? ?.addComponent(jPanel1, GroupLayout.Alignment.LEADING,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.Alignment.LEADING).addComponent(jPanel2,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 668,
?? ??? ??? ??? ??? ??? ??? ??? ?Short.MAX_VALUE))
?? ??? ??? ??? ?.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ?.addComponent(jPanel1, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
?? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 186,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18).addComponent(jPanel2, GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addContainerGap()));

?? ??? ?pack();
?? ?}

?? ?

?? ?private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String bookName = this.bookNameText.getText();
?? ??? ?Book book = new Book();
?? ??? ?book.setBookName(bookName);
?? ??? ?fillBookTable(book);
?? ?}

?? ?private void bookTableMousePressed(java.awt.event.MouseEvent evt) {
?? ??? ?int row = bookTable.getSelectedRow();
?? ??? ?Integer bookId = (Integer) bookTable.getValueAt(row, 0);
?? ??? ?Book book = new Book();
?? ??? ?book.setBookId(bookId);
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?ResultSet list = bookDao.list(con, book);
?? ??? ??? ?if (list.next()) {
?? ??? ??? ??? ?this.bookId.setText(list.getString("id"));
?? ??? ??? ??? ?this.bookName.setText(list.getString("book_name"));
?? ??? ??? ??? ?this.authorText.setText(list.getString("author"));
?? ??? ??? ??? ?this.publishText.setText(list.getString("publish"));
?? ??? ??? ??? ?this.priceText.setText(list.getString("price"));
?? ??? ??? ??? ?this.numberText.setText(list.getString("number"));
?? ??? ??? ??? ?this.remarkText.setText(list.getString("remark"));
?? ??? ??? ??? ?int status = list.getInt("status");
?? ??? ??? ??? ?if (status == 1) {
?? ??? ??? ??? ??? ?this.jCB_status.setSelectedIndex(0);
?? ??? ??? ??? ?} else {
?? ??? ??? ??? ??? ?this.jCB_status.setSelectedIndex(1);
?? ??? ??? ??? ?}
?? ??? ??? ??? ?int typeId = list.getInt("type_id");
?? ??? ??? ??? ?int count = this.jCB_type2.getItemCount();
?? ??? ??? ??? ?for (int i = 0; i < count; i++) {
?? ??? ??? ??? ??? ?BookType bookType = (BookType) this.jCB_type2.getItemAt(i);
?? ??? ??? ??? ??? ?if (bookType.getTypeId() == typeId) {
?? ??? ??? ??? ??? ??? ?this.jCB_type2.setSelectedIndex(i);
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String bookName = this.bookName.getText();
?? ??? ?String author = this.authorText.getText();
?? ??? ?String publish = this.publishText.getText();
?? ??? ?String priceStr = this.priceText.getText();
?? ??? ?String numberStr = this.numberText.getText();
?? ??? ?String remark = this.remarkText.getText();
?? ??? ?String bookId = this.bookId.getText();
?? ??? ?if (StringUtil.isEmpty(bookId) || StringUtil.isEmpty(bookName) || StringUtil.isEmpty(author)
?? ??? ??? ??? ?|| StringUtil.isEmpty(publish) || StringUtil.isEmpty(priceStr) || StringUtil.isEmpty(numberStr)
?? ??? ??? ??? ?|| StringUtil.isEmpty(remark)) {
?? ??? ??? ?JOptionPane.showMessageDialog(null, "請輸入相關(guān)內(nèi)容");
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?BookType selectedItem = (BookType) jCB_type2.getSelectedItem();
?? ??? ?Integer typeId = selectedItem.getTypeId();
?? ??? ?int index = jCB_status.getSelectedIndex();

?? ??? ?int number;
?? ??? ?double price;
?? ??? ?try {
?? ??? ??? ?number = Integer.parseInt(numberStr);
?? ??? ??? ?price = new BigDecimal(priceStr).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
?? ??? ?} catch (Exception e) {
?? ??? ??? ?JOptionPane.showMessageDialog(null, "參數(shù)錯誤");
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?Book book = new Book();
?? ??? ?book.setBookId(Integer.parseInt(bookId));
?? ??? ?book.setBookName(bookName);
?? ??? ?book.setAuthor(author);
?? ??? ?book.setBookTypeId(typeId);
?? ??? ?book.setNumber(number);
?? ??? ?book.setPrice(price);
?? ??? ?book.setPublish(publish);
?? ??? ?book.setRemark(remark);
?? ??? ?book.setStatus(1);
?? ??? ?if (index == 0) {
?? ??? ??? ?book.setStatus(1);
?? ??? ?} else if (index == 1) {
?? ??? ??? ?book.setStatus(2);
?? ??? ?}
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?int i = bookDao.update(con, book);
?? ??? ??? ?if (i == 1) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "修改成功");
?? ??? ??? ?} else {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "修改失敗");
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?JOptionPane.showMessageDialog(null, "修改異常");
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}

?? ??? ?fillBookTable(new Book());
?? ?}

}

BookInfoFrm.java

package com.sjsq.view;

import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.table.DefaultTableModel;

import com.sjsq.dao.BookDao;
import com.sjsq.dao.BorrowDetailDao;
import com.sjsq.model.Book;
import com.sjsq.model.BorrowDetail;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;
import com.sjsq.util.TimeUtil;

public class BookInfoFrm extends JInternalFrame {
?? ?
?? ?private JTextField bookIdText;
?? ?private JTextField bookName;
?? ?private JTextField bookNameText;
?? ?private JTable bookTable;
?? ?private JButton jB_borrow;
?? ?private JButton jButton1;
?? ?private JLabel jLabel1;
?? ?private JLabel jLabel2;
?? ?private JLabel jLabel3;
?? ?private JPanel jPanel1;
?? ?private JScrollPane jScrollPane1;
?? ?
?? ?DbUtil dbUtil = new DbUtil();
?? ?BookDao bookDao = new BookDao();
?? ?BorrowDetailDao borrowDetailDao = new BorrowDetailDao();

?? ?
?? ?public BookInfoFrm() {
?? ??? ?initComponents();
?? ??? ?fillTable(new Book());
?? ??? ?setTitle("書籍信息");
?? ??? ?this.setLocation(200, 50);
?? ?}

?? ?private void fillTable(Book book) {
?? ??? ?DefaultTableModel model = (DefaultTableModel) bookTable.getModel();
?? ??? ?model.setRowCount(0);
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?book.setStatus(1);
?? ??? ??? ?ResultSet list = bookDao.list(con, book);
?? ??? ??? ?while (list.next()) {
?? ??? ??? ??? ?Vector rowData = new Vector();
?? ??? ??? ??? ?rowData.add(list.getInt("id"));
?? ??? ??? ??? ?rowData.add(list.getString("book_name"));
?? ??? ??? ??? ?rowData.add(list.getString("type_name"));
?? ??? ??? ??? ?rowData.add(list.getString("author"));
?? ??? ??? ??? ?rowData.add(list.getString("remark"));
?? ??? ??? ??? ?model.addRow(rowData);
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?
?? ?private void initComponents() {

?? ??? ?jScrollPane1 = new JScrollPane();
?? ??? ?bookTable = new JTable();
?? ??? ?jPanel1 = new JPanel();
?? ??? ?jLabel1 = new JLabel();
?? ??? ?bookNameText = new JTextField();
?? ??? ?jButton1 = new JButton();
?? ??? ?jB_borrow = new JButton();
?? ??? ?jLabel2 = new JLabel();
?? ??? ?bookIdText = new JTextField();
?? ??? ?jLabel3 = new JLabel();
?? ??? ?bookName = new JTextField();

?? ??? ?setClosable(true);

?? ??? ?bookTable.setModel(new DefaultTableModel(new Object[][] {

?? ??? ?}, new String[] { "編號", "書名", "類型", "作者", "描述" }) {
?? ??? ??? ?boolean[] canEdit = new boolean[] { false, false, false, false, false };

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

?? ??? ?jLabel1.setText("書籍名稱:");

?? ??? ?bookNameText.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?bookNameTextActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});

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

?? ??? ?GroupLayout jPanel1Layout = new GroupLayout(jPanel1);
?? ??? ?jPanel1.setLayout(jPanel1Layout);
?? ??? ?jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ?.addGap(42, 42, 42).addComponent(jLabel1).addGap(36, 36, 36)
?? ??? ??? ??? ??? ??? ?.addComponent(bookNameText, GroupLayout.PREFERRED_SIZE, 130,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 149, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addComponent(jButton1).addGap(45, 45, 45)));
?? ??? ?jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addGap(23, 23, 23)
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jButton1).addComponent(jLabel1).addComponent(bookNameText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ?.addContainerGap(30, Short.MAX_VALUE)));

?? ??? ?jB_borrow.setText("借書");
?? ??? ?jB_borrow.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jB_borrowActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});

?? ??? ?jLabel2.setText("編號:");

?? ??? ?bookIdText.setEditable(false);

?? ??? ?jLabel3.setText("書名:");

?? ??? ?bookName.setEditable(false);

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ?.createSequentialGroup().addGap(22, 22, 22)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ??? ??? ?.createSequentialGroup().addComponent(jLabel2)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
?? ??? ??? ??? ??? ??? ?.addComponent(bookIdText, GroupLayout.PREFERRED_SIZE, 95,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel3)
?? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ?.addComponent(bookName, GroupLayout.PREFERRED_SIZE, 127,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 102, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addComponent(jB_borrow).addGap(88, 88, 88))
?? ??? ??? ??? ??? ??? ?.addGroup(layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jPanel1, GroupLayout.Alignment.TRAILING,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.Alignment.TRAILING,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, 507, Short.MAX_VALUE))
?? ??? ??? ??? ??? ??? ??? ??? ?.addContainerGap(38, Short.MAX_VALUE)))));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ?.addComponent(jPanel1, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
?? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 225,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 35, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel2).addComponent(jLabel3)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(bookIdText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(bookName, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jB_borrow))
?? ??? ??? ??? ??? ??? ?.addGap(27, 27, 27)));

?? ??? ?pack();
?? ?}
?? ??? ?

?? ?private void jB_borrowActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String bookId = this.bookIdText.getText();
?? ??? ?String bookName = this.bookName.getText();
?? ??? ?if (StringUtil.isEmpty(bookId) || StringUtil.isEmpty(bookName)) {
?? ??? ??? ?JOptionPane.showMessageDialog(null, "請選擇相關(guān)書籍");
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?BorrowDetail borrowDetail = new BorrowDetail();
?? ??? ?borrowDetail.setUserId(LoginFrm.currentUser.getUserId());
?? ??? ?borrowDetail.setBookId(Integer.parseInt(bookId));
?? ??? ?borrowDetail.setStatus(1);
?? ??? ?borrowDetail.setBorrowTime(TimeUtil.getTime());
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();

?? ??? ??? ?// 先查詢是否有該書在借
?? ??? ??? ?ResultSet list = borrowDetailDao.list(con, borrowDetail);
?? ??? ??? ?while (list.next()) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "該書已在借,請先還再借");
?? ??? ??? ??? ?return;
?? ??? ??? ?}
?? ??? ??? ?int i = borrowDetailDao.add(con, borrowDetail);
?? ??? ??? ?if (i == 1) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "借書成功");
?? ??? ??? ?} else {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "借書失敗");
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?JOptionPane.showMessageDialog(null, "借書異常");
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}

?? ?}

?? ?private void bookTableMousePressed(java.awt.event.MouseEvent evt) {
?? ??? ?int row = this.bookTable.getSelectedRow();
?? ??? ?Object bookId = this.bookTable.getValueAt(row, 0);
?? ??? ?Object bookName = this.bookTable.getValueAt(row, 1);
?? ??? ?this.bookIdText.setText(bookId.toString());
?? ??? ?this.bookName.setText(bookName.toString());
?? ?}

?? ?private void bookNameTextActionPerformed(java.awt.event.ActionEvent evt) {
?? ?}

?? ?private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String bookName = this.bookNameText.getText();
?? ??? ?Book book = new Book();
?? ??? ?book.setBookName(bookName);
?? ??? ?fillTable(book);
?? ?}
}

BookTypeAddFrm.java

package com.sjsq.view;

import java.sql.Connection;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import com.sjsq.dao.BookTypeDao;
import com.sjsq.model.BookType;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;

public class BookTypeAddFrm extends JInternalFrame {
?? ?
?? ?private JButton jButton1;
?? ?private JButton jButton2;
?? ?private JLabel jLabel1;
?? ?private JLabel jLabel2;
?? ?private JScrollPane jScrollPane1;
?? ?private JTextField typeNameText;
?? ?private JTextArea typeRemarkTtext;
?? ?
?? ?DbUtil dbUtil = new DbUtil();
?? ?BookTypeDao bookTypeDao = new BookTypeDao();

?? ?
?? ?public BookTypeAddFrm() {
?? ??? ?initComponents();
?? ??? ?setTitle("圖書類別添加");
?? ??? ?this.setLocation(200, 50);
?? ?}

?? ?
?? ?private void initComponents() {

?? ??? ?jLabel1 = new JLabel();
?? ??? ?jLabel2 = new JLabel();
?? ??? ?jButton1 = new JButton();
?? ??? ?typeNameText = new JTextField();
?? ??? ?jScrollPane1 = new JScrollPane();
?? ??? ?typeRemarkTtext = new JTextArea();
?? ??? ?jButton2 = new JButton();

?? ??? ?setClosable(true);

?? ??? ?jLabel1.setText("圖書類別名稱:");

?? ??? ?jLabel2.setText("類別說明:");

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

?? ??? ?typeRemarkTtext.setColumns(20);
?? ??? ?typeRemarkTtext.setRows(5);
?? ??? ?jScrollPane1.setViewportView(typeRemarkTtext);

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

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(layout.createSequentialGroup().addGap(49, 49, 49)
?? ??? ??? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(layout.createSequentialGroup().addComponent(jLabel2).addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1))
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(layout.createSequentialGroup().addComponent(jLabel1).addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(typeNameText, GroupLayout.PREFERRED_SIZE, 241,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(layout.createSequentialGroup().addComponent(jButton1).addGap(53, 53, 53)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jButton2)))
?? ??? ??? ??? ??? ??? ?.addGap(179, 179, 179)));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ?.createSequentialGroup().addGap(35, 35, 35)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel1)
?? ??? ??? ??? ??? ??? ?.addComponent(typeNameText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ?.addGap(43, 43, 43)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(jLabel2)
?? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 134,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ?.addGap(41, 41, 41).addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ?.addComponent(jButton1).addComponent(jButton2))
?? ??? ??? ??? ?.addContainerGap(62, Short.MAX_VALUE)));

?? ??? ?pack();
?? ?}
?? ??? ?

?? ?private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String typeName = this.typeNameText.getText();
?? ??? ?String typeRemark = this.typeRemarkTtext.getText();
?? ??? ?if (StringUtil.isEmpty(typeName) || StringUtil.isEmpty(typeRemark)) {
?? ??? ??? ?JOptionPane.showMessageDialog(null, "請輸入相關(guān)信息");
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?BookType bookType = new BookType();
?? ??? ?bookType.setTypeName(typeName);
?? ??? ?bookType.setRemark(typeRemark);
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?int i = bookTypeDao.add(con, bookType);
?? ??? ??? ?if (i == 1) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "添加成功");
?? ??? ??? ??? ?reset();
?? ??? ??? ?} else if (i == 2) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "添加失敗,類別已存在");
?? ??? ??? ?} else {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "添加失敗");
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?private void reset() {
?? ??? ?this.typeNameText.setText("");
?? ??? ?this.typeRemarkTtext.setText("");
?? ?}

?? ?private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?reset();
?? ?}

}

BookTypeManagerFrm.java

package com.sjsq.view;

import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.table.DefaultTableModel;

import com.sjsq.dao.BookTypeDao;
import com.sjsq.model.BookType;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;

public class BookTypeManagerFrm extends JInternalFrame {
?? ?
?? ?private JButton jButton1;
?? ?private JButton jButton2;
?? ?private JLabel jLabel1;
?? ?private JLabel jLabel2;
?? ?private JLabel jLabel3;
?? ?private JPanel jPanel1;
?? ?private JScrollPane jScrollPane1;
?? ?private JTextField typeIdText;
?? ?private JTextField typeNameText;
?? ?private JTextField typeRemarkText;
?? ?private JTable typeTable;
?? ?
?? ?
?? ?DbUtil dbUtil = new DbUtil();
?? ?BookTypeDao bookTypeDao = new BookTypeDao();

?? ?
?? ?public BookTypeManagerFrm() {
?? ??? ?initComponents();
?? ??? ?fillTable();
?? ??? ?setTitle("圖書類別修改");
?? ??? ?this.setLocation(200, 30);
?? ?}

?? ?private void fillTable() {
?? ??? ?DefaultTableModel model = (DefaultTableModel) typeTable.getModel();
?? ??? ?model.setRowCount(0);
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?ResultSet list = bookTypeDao.list(con, new BookType());
?? ??? ??? ?while (list.next()) {
?? ??? ??? ??? ?Vector rowData = new Vector();
?? ??? ??? ??? ?rowData.add(list.getInt("id"));
?? ??? ??? ??? ?rowData.add(list.getString("type_name"));
?? ??? ??? ??? ?rowData.add(list.getString("remark"));
?? ??? ??? ??? ?model.addRow(rowData);
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?
?? ?private void initComponents() {

?? ??? ?jScrollPane1 = new JScrollPane();
?? ??? ?typeTable = new JTable();
?? ??? ?jPanel1 = new JPanel();
?? ??? ?jLabel1 = new JLabel();
?? ??? ?jLabel2 = new JLabel();
?? ??? ?jLabel3 = new JLabel();
?? ??? ?typeIdText = new JTextField();
?? ??? ?typeNameText = new JTextField();
?? ??? ?typeRemarkText = new JTextField();
?? ??? ?jButton1 = new JButton();
?? ??? ?jButton2 = new JButton();

?? ??? ?setClosable(true);

?? ??? ?typeTable.setModel(new DefaultTableModel(new Object[][] {

?? ??? ?}, new String[] { "編號", "類別名稱", "類別描述" }) {
?? ??? ??? ?boolean[] canEdit = new boolean[] { false, false, false };

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

?? ??? ?jPanel1.setBorder(BorderFactory.createTitledBorder("表單操作"));
?? ??? ?jPanel1.setToolTipText("");

?? ??? ?jLabel1.setText("編號:");

?? ??? ?jLabel2.setText("類別名稱:");

?? ??? ?jLabel3.setText("描述:");

?? ??? ?typeIdText.setEditable(false);

?? ??? ?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);
?? ??? ??? ?}
?? ??? ?});

?? ??? ?GroupLayout jPanel1Layout = new GroupLayout(jPanel1);
?? ??? ?jPanel1.setLayout(jPanel1Layout);
?? ??? ?jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
?? ??? ??? ??? ??? ??? ?.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addGap(22, 22, 22).addGroup(jPanel1Layout
?? ??? ??? ??? ??? ??? ??? ??? ?.createParallelGroup(GroupLayout.Alignment.LEADING, false)
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel3).addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(typeRemarkText))
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel1).addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(typeIdText, GroupLayout.PREFERRED_SIZE, 123,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jButton2)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel2)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18).addComponent(typeNameText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, 133,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))))))
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addGap(41, 41, 41).addComponent(jButton1)))
?? ??? ??? ??? ??? ??? ?.addContainerGap(43, Short.MAX_VALUE)));
?? ??? ?jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
?? ??? ??? ??? ??? ??? ?.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel1).addComponent(jLabel2).addComponent(typeNameText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ?.addComponent(typeIdText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ?.addGap(27, 27, 27)
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel3).addComponent(typeRemarkText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 41, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jButton1).addComponent(jButton2))
?? ??? ??? ??? ??? ??? ?.addContainerGap()));

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ?.createSequentialGroup().addGap(42, 42, 42)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
?? ??? ??? ??? ??? ??? ?.addComponent(jPanel1, GroupLayout.Alignment.LEADING,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.Alignment.LEADING,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, 452, GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ?.addContainerGap(49, Short.MAX_VALUE)));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(layout.createSequentialGroup().addContainerGap()
?? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 137,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addGap(51, 51, 51)
?? ??? ??? ??? ??? ??? ?.addComponent(jPanel1, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addContainerGap(30, Short.MAX_VALUE)));

?? ??? ?pack();
?? ?}
?? ??? ?

?? ?private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String typeId = this.typeIdText.getText();
?? ??? ?if (StringUtil.isEmpty(typeId)) {
?? ??? ??? ?JOptionPane.showMessageDialog(null, "請選擇相關(guān)信息");
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?int i = bookTypeDao.delete(con, typeId);
?? ??? ??? ?if (i == 1) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "刪除成功");
?? ??? ??? ??? ?fillTable();
?? ??? ??? ?} else if (i == 2) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "刪除失敗-類別最少保留一個");
?? ??? ??? ?} else if (i == 3) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "刪除失敗-該類別下有書籍");
?? ??? ??? ?} else {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "刪除失敗");
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?JOptionPane.showMessageDialog(null, "刪除異常");
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String typeId = this.typeIdText.getText();
?? ??? ?String typeName = this.typeNameText.getText();
?? ??? ?String typeRemark = this.typeRemarkText.getText();
?? ??? ?if (StringUtil.isEmpty(typeName) || StringUtil.isEmpty(typeRemark)) {
?? ??? ??? ?JOptionPane.showMessageDialog(null, "請輸入相關(guān)信息");
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?BookType bookType = new BookType();
?? ??? ?bookType.setTypeId(Integer.parseInt(typeId));
?? ??? ?bookType.setTypeName(typeName);
?? ??? ?bookType.setRemark(typeRemark);
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?int i = bookTypeDao.update(con, bookType);
?? ??? ??? ?if (i == 1) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "修改成功");
?? ??? ??? ??? ?fillTable();
?? ??? ??? ?} else {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "修改失敗");
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?JOptionPane.showMessageDialog(null, "修改異常");
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?private void typeTableMousePressed(java.awt.event.MouseEvent evt) {
?? ??? ?int row = this.typeTable.getSelectedRow();
?? ??? ?this.typeIdText.setText(typeTable.getValueAt(row, 0).toString());
?? ??? ?this.typeNameText.setText(typeTable.getValueAt(row, 1).toString());
?? ??? ?this.typeRemarkText.setText(typeTable.getValueAt(row, 2).toString());
?? ?}

}

BorrowDetailFrm.java

package com.sjsq.view;

import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.GroupLayout;
import javax.swing.JInternalFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import com.sjsq.dao.BorrowDetailDao;
import com.sjsq.model.BorrowDetail;
import com.sjsq.util.DbUtil;
import com.sjsq.util.TimeUtil;

public class BorrowDetailFrm extends JInternalFrame {
?? ?
?? ?private JTable detailTable;
?? ?private JScrollPane jScrollPane1;
?? ?
?? ?
?? ?DbUtil dbUtil = new DbUtil();
?? ?BorrowDetailDao borrowDetailDao = new BorrowDetailDao();

?? ?
?? ?public BorrowDetailFrm() {
?? ??? ?initComponents();
?? ??? ?fillTable(new BorrowDetail());
?? ??? ?setTitle("借還信息");
?? ??? ?this.setLocation(200, 50);
?? ?}

?? ?private void fillTable(BorrowDetail borrowDetail) {
?? ??? ?DefaultTableModel model = (DefaultTableModel) detailTable.getModel();
?? ??? ?model.setRowCount(0);
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?ResultSet list = borrowDetailDao.list(con, borrowDetail);
?? ??? ??? ?while (list.next()) {
?? ??? ??? ??? ?Vector rowData = new Vector();
?? ??? ??? ??? ?rowData.add(list.getString("username"));
?? ??? ??? ??? ?rowData.add(list.getString("book_name"));
?? ??? ??? ??? ?int status = list.getInt("status");
?? ??? ??? ??? ?if (status == 1) {
?? ??? ??? ??? ??? ?rowData.add("在借");
?? ??? ??? ??? ?} else {
?? ??? ??? ??? ??? ?rowData.add("已還");
?? ??? ??? ??? ?}
?? ??? ??? ??? ?rowData.add(TimeUtil.getDateByTime(list.getLong("borrow_time")));
?? ??? ??? ??? ?if (status == 2) {
?? ??? ??? ??? ??? ?rowData.add(TimeUtil.getDateByTime(list.getLong("return_time")));
?? ??? ??? ??? ?}
?? ??? ??? ??? ?model.addRow(rowData);
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?
?? ?private void initComponents() {

?? ??? ?jScrollPane1 = new JScrollPane();
?? ??? ?detailTable = new JTable();

?? ??? ?setClosable(true);

?? ??? ?detailTable.setModel(new DefaultTableModel(new Object[][] {

?? ??? ?}, new String[] { "借書人", "書名", "狀態(tài)", "借書時間", "還書時間" }) {
?? ??? ??? ?boolean[] canEdit = new boolean[] { false, false, false, false, false };

?? ??? ??? ?public boolean isCellEditable(int rowIndex, int columnIndex) {
?? ??? ??? ??? ?return canEdit[columnIndex];
?? ??? ??? ?}
?? ??? ?});
?? ??? ?jScrollPane1.setViewportView(detailTable);

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(layout.createSequentialGroup().addContainerGap()
?? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.DEFAULT_SIZE, 700, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addContainerGap()));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(layout
?? ??? ??? ??? ??? ??? ?.createSequentialGroup().addContainerGap().addComponent(jScrollPane1,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, 366, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addContainerGap(25, Short.MAX_VALUE)));

?? ??? ?pack();
?? ?}
?? ??? ?
}

LoginFrm.java

package com.sjsq.view;

import java.sql.Connection;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.WindowConstants;

import com.sjsq.dao.UserDao;
import com.sjsq.model.User;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;

public class LoginFrm extends JFrame {
?? ?public static User currentUser;
?? ?private JButton jB_login;
?? ?private JButton jB_reset;
?? ?private JLabel jLabel1;
?? ?private JLabel jLabel2;
?? ?private JLabel jLabel3;
?? ?private JTextField passwordText;
?? ?private JComboBox role;
?? ?private JTextField userNameText;
?? ?
?? ?UserDao userDao = new UserDao();
?? ?DbUtil dbUtil = new DbUtil();

?? ?
?? ?public LoginFrm() {
?? ??? ?initComponents();
?? ??? ?this.role.addItem("學(xué)生");
?? ??? ?this.role.addItem("管理員");
?? ??? ?this.setLocationRelativeTo(null);
?? ?}

?? ?
?? ?private void initComponents() {

?? ??? ?jLabel1 = new JLabel();
?? ??? ?jLabel2 = new JLabel();
?? ??? ?jLabel3 = new JLabel();
?? ??? ?jB_login = new JButton();
?? ??? ?jB_reset = new JButton();
?? ??? ?userNameText = new JTextField();
?? ??? ?passwordText = new JTextField();
?? ??? ?role = new JComboBox();

?? ??? ?setTitle("用戶登錄");
?? ??? ?setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
?? ??? ?setResizable(false);

?? ??? ?jLabel1.setText("賬號:");

?? ??? ?jLabel2.setText("密碼:");

?? ??? ?jLabel3.setText("角色:");

?? ??? ?jB_login.setText("登錄");
?? ??? ?jB_login.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jB_loginActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});

?? ??? ?jB_reset.setText("重置");
?? ??? ?jB_reset.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jB_resetActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ?.createSequentialGroup().addGap(59, 59, 59)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ?.addGroup(layout.createSequentialGroup().addComponent(jB_login).addGap(87, 87, 87)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jB_reset))
?? ??? ??? ??? ??? ??? ?.addGroup(layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel3).addComponent(jLabel2).addComponent(jLabel1))
?? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(userNameText, GroupLayout.DEFAULT_SIZE, 150,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(passwordText)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(role, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
?? ??? ??? ??? ?.addContainerGap(137, Short.MAX_VALUE)));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ?.createSequentialGroup().addGap(49, 49, 49)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel1)
?? ??? ??? ??? ??? ??? ?.addComponent(userNameText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ?.addGap(45, 45, 45)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(jLabel2)
?? ??? ??? ??? ??? ??? ?.addComponent(passwordText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ?.addGap(33, 33, 33)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel3)
?? ??? ??? ??? ??? ??? ?.addComponent(role, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 42, Short.MAX_VALUE)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jB_login)
?? ??? ??? ??? ??? ??? ?.addComponent(jB_reset))
?? ??? ??? ??? ?.addGap(37, 37, 37)));

?? ??? ?pack();
?? ?}

?? ?

?? ?private void jB_loginActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String userName = this.userNameText.getText();
?? ??? ?String password = this.passwordText.getText();
?? ??? ?int index = this.role.getSelectedIndex();
?? ??? ?if (StringUtil.isEmpty(userName) || StringUtil.isEmpty(password)) {
?? ??? ??? ?JOptionPane.showMessageDialog(null, "請輸入相關(guān)信息");
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?User user = new User();
?? ??? ?user.setUserName(userName);
?? ??? ?user.setPassword(password);
?? ??? ?if (index == 0) {
?? ??? ??? ?user.setRole(1);
?? ??? ?} else {
?? ??? ??? ?user.setRole(2);
?? ??? ?}
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?User login = userDao.login(con, user);
?? ??? ??? ?currentUser = login;
?? ??? ??? ?if (login == null) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "登錄失敗");
?? ??? ??? ?} else {
?? ??? ??? ??? ?// 角色 1普通 2管理員
?? ??? ??? ??? ?if (index == 0) {
?? ??? ??? ??? ??? ?// 學(xué)生
?? ??? ??? ??? ??? ?this.dispose();
?? ??? ??? ??? ??? ?new UserMainFrm().setVisible(true);
?? ??? ??? ??? ?} else {
?? ??? ??? ??? ??? ?// 管理員
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?this.dispose();
?? ??? ??? ??? ??? ?new AdminMainFrm().setVisible(true);
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?JOptionPane.showMessageDialog(null, "登錄異常");
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}

?? ?}

?? ?private void reset() {
?? ??? ?this.userNameText.setText("");
?? ??? ?this.passwordText.setText("");
?? ?}

?? ?private void jB_resetActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?reset();
?? ?}

?? ?public static void main(String args[]) {
?? ??? ?java.awt.EventQueue.invokeLater(new Runnable() {
?? ??? ??? ?public void run() {
?? ??? ??? ??? ?new LoginFrm().setVisible(true);
?? ??? ??? ?}
?? ??? ?});
?? ?}

}

RegisterFrm.java

package com.sjsq.view;

import java.sql.Connection;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.WindowConstants;

import com.sjsq.dao.UserDao;
import com.sjsq.model.User;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;

public class RegisterFrm extends JFrame {
?? ?
?? ?private JButton jButton1;
?? ?private JButton jButton2;
?? ?private JLabel jLabel1;
?? ?private JLabel jLabel2;
?? ?private JTextField passwordText;
?? ?private JTextField userNameText;
?? ?
?? ?
?? ?DbUtil dbUtil = new DbUtil();
?? ?UserDao userDao = new UserDao();

?? ?
?? ?public RegisterFrm() {
?? ??? ?initComponents();
?? ??? ?this.setLocationRelativeTo(null);
?? ?}

?? ?
?? ?private void initComponents() {

?? ??? ?jLabel1 = new JLabel();
?? ??? ?jLabel2 = new JLabel();
?? ??? ?jButton1 = new JButton();
?? ??? ?jButton2 = new JButton();
?? ??? ?userNameText = new JTextField();
?? ??? ?passwordText = new JTextField();

?? ??? ?setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
?? ??? ?setTitle("用戶注冊");
?? ??? ?setResizable(false);

?? ??? ?jLabel1.setText("賬號:");

?? ??? ?jLabel2.setText("密碼:");

?? ??? ?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);
?? ??? ??? ?}
?? ??? ?});

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ?.createSequentialGroup().addGap(60, 60, 60)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ?.addGroup(layout.createSequentialGroup().addComponent(jButton1).addGap(77, 77, 77)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jButton2))
?? ??? ??? ??? ??? ??? ?.addGroup(layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel1).addComponent(jLabel2))
?? ??? ??? ??? ??? ??? ??? ??? ?.addGap(37, 37, 37)
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(passwordText).addComponent(userNameText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, 144, Short.MAX_VALUE))))
?? ??? ??? ??? ?.addContainerGap(123, Short.MAX_VALUE)));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ?.createSequentialGroup().addGap(49, 49, 49)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel1)
?? ??? ??? ??? ??? ??? ?.addComponent(userNameText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ?.addGap(48, 48, 48)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel2)
?? ??? ??? ??? ??? ??? ?.addComponent(passwordText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 68, Short.MAX_VALUE)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jButton1)
?? ??? ??? ??? ??? ??? ?.addComponent(jButton2))
?? ??? ??? ??? ?.addGap(64, 64, 64)));

?? ??? ?pack();
?? ?}
?? ??? ?

?? ?private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String userName = this.userNameText.getText();
?? ??? ?String password = this.passwordText.getText();
?? ??? ?if (StringUtil.isEmpty(userName) || StringUtil.isEmpty(password)) {
?? ??? ??? ?JOptionPane.showMessageDialog(null, "請輸入相關(guān)信息");
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?User user = new User();
?? ??? ?user.setUserName(userName);
?? ??? ?user.setPassword(password);
?? ??? ?user.setRole(1);
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?int i = userDao.addUser(con, user);
?? ??? ??? ?if (i == 2) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "該用戶名已存在,請重新注冊");
?? ??? ??? ?} else if (i == 0) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "注冊失敗");
?? ??? ??? ?} else {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "注冊成功");
?? ??? ??? ??? ?this.dispose();
?? ??? ??? ??? ?new LoginFrm().setVisible(true);
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?private void reset() {
?? ??? ?this.userNameText.setText("");
?? ??? ?this.passwordText.setText("");
?? ?}

?? ?private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?reset();
?? ?}

?? ?public static void main(String args[]) {
?? ??? ?java.awt.EventQueue.invokeLater(new Runnable() {
?? ??? ??? ?public void run() {
?? ??? ??? ??? ?new RegisterFrm().setVisible(true);
?? ??? ??? ?}
?? ??? ?});
?? ?}

}

UserBorrowDetail.java

package com.sjsq.view;

import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.table.DefaultTableModel;

import com.sjsq.dao.BorrowDetailDao;
import com.sjsq.model.BorrowDetail;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;
import com.sjsq.util.TimeUtil;

public class UserBorrowDetail extends JInternalFrame {
?? ?
?? ?private JTextField borrowIdText;
?? ?private JTable borrowTbale;
?? ?private JButton jB_return;
?? ?private JLabel jLabel1;
?? ?private JScrollPane jScrollPane1;
?? ?
?? ?
?? ?DbUtil dbUtil = new DbUtil();
?? ?BorrowDetailDao borrowDetailDao = new BorrowDetailDao();

?? ?
?? ?public UserBorrowDetail() {
?? ??? ?initComponents();
?? ??? ?fillTable(new BorrowDetail());
?? ??? ?this.jB_return.setVisible(false);
?? ??? ?setTitle("借還信息");
?? ??? ?this.setLocation(200, 50);
?? ?}

?? ?private void fillTable(BorrowDetail borrowDetail) {
?? ??? ?DefaultTableModel model = (DefaultTableModel) borrowTbale.getModel();
?? ??? ?model.setRowCount(0);
?? ??? ?Integer userId = LoginFrm.currentUser.getUserId();
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?borrowDetail.setUserId(userId);
?? ??? ??? ?ResultSet list = borrowDetailDao.list(con, borrowDetail);
?? ??? ??? ?while (list.next()) {
?? ??? ??? ??? ?Vector rowData = new Vector();
?? ??? ??? ??? ?rowData.add(list.getInt("id"));
?? ??? ??? ??? ?rowData.add(list.getString("book_name"));
?? ??? ??? ??? ?int status = list.getInt("status");
?? ??? ??? ??? ?if (status == 1) {
?? ??? ??? ??? ??? ?rowData.add("在借");
?? ??? ??? ??? ?}
?? ??? ??? ??? ?if (status == 2) {
?? ??? ??? ??? ??? ?rowData.add("已還");
?? ??? ??? ??? ?}
?? ??? ??? ??? ?rowData.add(TimeUtil.getDateByTime(list.getLong("borrow_time")));
?? ??? ??? ??? ?if (status == 2) {
?? ??? ??? ??? ??? ?rowData.add(TimeUtil.getDateByTime(list.getLong("return_time")));
?? ??? ??? ??? ?}
?? ??? ??? ??? ?model.addRow(rowData);
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?
?? ?private void initComponents() {

?? ??? ?jScrollPane1 = new JScrollPane();
?? ??? ?borrowTbale = new JTable();
?? ??? ?jLabel1 = new JLabel();
?? ??? ?borrowIdText = new JTextField();
?? ??? ?jB_return = new JButton();

?? ??? ?setClosable(true);

?? ??? ?borrowTbale.setModel(new DefaultTableModel(new Object[][] {

?? ??? ?}, new String[] { "編號", "書名", "狀態(tài)", "借書時間", "還書時間" }) {
?? ??? ??? ?boolean[] canEdit = new boolean[] { false, false, false, false, false };

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

?? ??? ?jLabel1.setText("編號:");

?? ??? ?borrowIdText.setEditable(false);

?? ??? ?jB_return.setText("還書");
?? ??? ?jB_return.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jB_returnActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(layout.createSequentialGroup().addGap(35, 35, 35).addComponent(jLabel1).addGap(38, 38, 38)
?? ??? ??? ??? ??? ??? ?.addComponent(borrowIdText, GroupLayout.PREFERRED_SIZE, 114,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 282, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addComponent(jB_return).addGap(44, 44, 44))
?? ??? ??? ??? ?.addGroup(layout.createSequentialGroup().addContainerGap()
?? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.DEFAULT_SIZE, 700, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addContainerGap()));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ?.createSequentialGroup()
?? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 239,
?? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ?.addGap(18, 18, 18)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel1)
?? ??? ??? ??? ??? ??? ?.addComponent(borrowIdText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addComponent(jB_return))
?? ??? ??? ??? ?.addContainerGap(26, Short.MAX_VALUE)));

?? ??? ?pack();
?? ?}
?? ??? ?

?? ?private void jB_returnActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String BorrowStr = this.borrowIdText.getText();
?? ??? ?if (StringUtil.isEmpty(BorrowStr)) {
?? ??? ??? ?JOptionPane.showMessageDialog(null, "請選擇未還的書籍");
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?BorrowDetail detail = new BorrowDetail();
?? ??? ?detail.setBorrowId(Integer.parseInt(BorrowStr));
?? ??? ?detail.setStatus(2);
?? ??? ?detail.setReturnTime(TimeUtil.getTime());
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?int i = borrowDetailDao.returnBook(con, detail);
?? ??? ??? ?if (i == 1) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "還書成功");
?? ??? ??? ?} else {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "還書失敗");
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?JOptionPane.showMessageDialog(null, "還書異常");
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ??? ?fillTable(new BorrowDetail());
?? ?}

?? ?private void borrowTbaleMousePressed(java.awt.event.MouseEvent evt) {
?? ??? ?int row = borrowTbale.getSelectedRow();
?? ??? ?Integer borrowId = (Integer) borrowTbale.getValueAt(row, 0);
?? ??? ?String status = (String) borrowTbale.getValueAt(row, 2);
?? ??? ?this.borrowIdText.setText(borrowId.toString());
?? ??? ?if (status.equals("在借")) {
?? ??? ??? ?this.jB_return.setVisible(true);
?? ??? ?} else {
?? ??? ??? ?this.jB_return.setVisible(false);
?? ??? ?}
?? ?}
}

UserInfoFrm.java

package com.sjsq.view;

import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.table.DefaultTableModel;

import com.sjsq.dao.UserDao;
import com.sjsq.model.User;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;

public class UserInfoFrm extends JInternalFrame {
?? ?
?? ?private JButton jButton1;
?? ?private JButton jButton2;
?? ?private JLabel jLabel1;
?? ?private JLabel jLabel2;
?? ?private JLabel jLabel3;
?? ?private JLabel jLabel4;
?? ?private JLabel jLabel5;
?? ?private JPanel jPanel1;
?? ?private JPanel jPanel2;
?? ?private JScrollPane jScrollPane1;
?? ?private JTextField passwordText;
?? ?private JTextField userIdText;
?? ?private JTextField userNameText;
?? ?private JTextField userNaneSelectText;
?? ?private JTable userTable;
?? ?
?? ?
?? ?DbUtil dbUtil = new DbUtil();
?? ?UserDao userDao = new UserDao();

?? ?
?? ?public UserInfoFrm() {
?? ??? ?initComponents();
?? ??? ?fillTable(new User());
?? ??? ?setTitle("用戶信息");
?? ??? ?this.setLocation(200, 50);
?? ?}

?? ?private void fillTable(User user) {
?? ??? ?DefaultTableModel model = (DefaultTableModel) userTable.getModel();
?? ??? ?model.setRowCount(0);

?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?ResultSet list = userDao.list(con, user);
?? ??? ??? ?while (list.next()) {
?? ??? ??? ??? ?Vector rowData = new Vector();
?? ??? ??? ??? ?rowData.add(list.getInt("id"));
?? ??? ??? ??? ?rowData.add(list.getString("username"));
?? ??? ??? ??? ?rowData.add(list.getString("password"));
?? ??? ??? ??? ?model.addRow(rowData);
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?
?? ?private void initComponents() {

?? ??? ?jLabel2 = new JLabel();
?? ??? ?jScrollPane1 = new JScrollPane();
?? ??? ?userTable = new JTable();
?? ??? ?jPanel1 = new JPanel();
?? ??? ?jLabel1 = new JLabel();
?? ??? ?jButton1 = new JButton();
?? ??? ?userNaneSelectText = new JTextField();
?? ??? ?jPanel2 = new JPanel();
?? ??? ?jLabel3 = new JLabel();
?? ??? ?userIdText = new JTextField();
?? ??? ?jLabel4 = new JLabel();
?? ??? ?userNameText = new JTextField();
?? ??? ?jLabel5 = new JLabel();
?? ??? ?passwordText = new JTextField();
?? ??? ?jButton2 = new JButton();

?? ??? ?jLabel2.setText("jLabel2");

?? ??? ?setClosable(true);

?? ??? ?userTable.setModel(new DefaultTableModel(new Object[][] {

?? ??? ?}, new String[] { "編號", "賬號", "密碼" }) {
?? ??? ??? ?boolean[] canEdit = new boolean[] { false, false, false };

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

?? ??? ?jPanel1.setBorder(BorderFactory.createTitledBorder("表單操作"));

?? ??? ?jLabel1.setText("賬號:");

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

?? ??? ?GroupLayout jPanel1Layout = new GroupLayout(jPanel1);
?? ??? ?jPanel1.setLayout(jPanel1Layout);
?? ??? ?jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addComponent(jLabel1)
?? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18)
?? ??? ??? ??? ??? ??? ?.addComponent(userNaneSelectText, GroupLayout.DEFAULT_SIZE, 184, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18).addComponent(jButton1).addContainerGap()));
?? ??? ?jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
?? ??? ??? ??? ??? ??? ?.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel1).addComponent(userNaneSelectText,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ?.addComponent(jButton1))
?? ??? ??? ??? ??? ??? ?.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

?? ??? ?jPanel2.setBorder(BorderFactory.createTitledBorder("用戶操作"));

?? ??? ?jLabel3.setText("編號:");

?? ??? ?userIdText.setEditable(false);

?? ??? ?jLabel4.setText("賬號:");

?? ??? ?jLabel5.setText("密碼:");

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

?? ??? ?GroupLayout jPanel2Layout = new GroupLayout(jPanel2);
?? ??? ?jPanel2.setLayout(jPanel2Layout);
?? ??? ?jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup().addContainerGap()
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel3)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(userIdText, GroupLayout.PREFERRED_SIZE, 85,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addGap(18, 18, 18).addComponent(jLabel4))
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel5)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(passwordText, GroupLayout.PREFERRED_SIZE, 88,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)))
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup().addGap(37, 37, 37).addComponent(
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?userNameText, GroupLayout.PREFERRED_SIZE, 94,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup().addGap(8, 8, 8).addComponent(jButton2)))
?? ??? ??? ??? ??? ??? ?.addContainerGap(26, Short.MAX_VALUE)));
?? ??? ?jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(jPanel2Layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel3).addComponent(jLabel4)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(userIdText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(userNameText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
?? ??? ??? ??? ??? ??? ?.addGap(29, 29, 29)
?? ??? ??? ??? ??? ??? ?.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jLabel5)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(passwordText, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ??? ??? ?.addComponent(jButton2))
?? ??? ??? ??? ??? ??? ?.addContainerGap(37, Short.MAX_VALUE)));

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout
?? ??? ??? ??? ?.createSequentialGroup().addGap(24, 24, 24)
?? ??? ??? ??? ?.addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
?? ??? ??? ??? ??? ??? ?.addComponent(jPanel2, GroupLayout.Alignment.LEADING,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.Alignment.LEADING, 0, 0, Short.MAX_VALUE)
?? ??? ??? ??? ??? ??? ?.addComponent(jPanel1, GroupLayout.Alignment.LEADING,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?Short.MAX_VALUE))
?? ??? ??? ??? ?.addGap(226, 226, 226)));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
?? ??? ??? ??? ?.addGroup(layout.createSequentialGroup()
?? ??? ??? ??? ??? ??? ?.addComponent(jPanel1, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addGap(28, 28, 28)
?? ??? ??? ??? ??? ??? ?.addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 136,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
?? ??? ??? ??? ??? ??? ?.addComponent(jPanel2, GroupLayout.PREFERRED_SIZE,
?? ??? ??? ??? ??? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
?? ??? ??? ??? ??? ??? ?.addContainerGap(16, Short.MAX_VALUE)));

?? ??? ?pack();
?? ?}
?? ??? ?

?? ?private void userTableMousePressed(java.awt.event.MouseEvent evt) {
?? ??? ?int row = this.userTable.getSelectedRow();
?? ??? ?this.userIdText.setText(userTable.getValueAt(row, 0).toString());
?? ??? ?this.userNameText.setText(userTable.getValueAt(row, 1).toString());
?? ??? ?this.passwordText.setText(userTable.getValueAt(row, 2).toString());
?? ?}

?? ?private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String userId = this.userIdText.getText();
?? ??? ?String userName = this.userNameText.getText();
?? ??? ?String password = this.passwordText.getText();
?? ??? ?if (StringUtil.isEmpty(userName) || StringUtil.isEmpty(password)) {
?? ??? ??? ?JOptionPane.showMessageDialog(null, "請輸入相關(guān)信息");
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?User user = new User();
?? ??? ?user.setUserId(Integer.parseInt(userId));
?? ??? ?user.setUserName(userName);
?? ??? ?user.setPassword(password);
?? ??? ?Connection con = null;
?? ??? ?try {
?? ??? ??? ?con = dbUtil.getCon();
?? ??? ??? ?int i = userDao.update(con, user);
?? ??? ??? ?if (i == 1) {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "修改成功");
?? ??? ??? ??? ?fillTable(new User());
?? ??? ??? ?} else {
?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "修改失敗");
?? ??? ??? ?}
?? ??? ?} catch (Exception e) {
?? ??? ??? ?
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?JOptionPane.showMessageDialog(null, "修改異常");
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?dbUtil.closeCon(con);
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?String userName = this.userNaneSelectText.getText();
?? ??? ?User user = new User();
?? ??? ?user.setUserName(userName);
?? ??? ?fillTable(user);
?? ?}
}

UserMainFrm.java

package com.sjsq.view;

import javax.swing.GroupLayout;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.WindowConstants;

public class UserMainFrm extends JFrame {

?? ?private JMenu jMenu1;
?? ?private JMenuBar jMenuBar1;
?? ?private JMenuItem jMenuItem1;
?? ?private JMenuItem jMenuItem2;
?? ?private JMenuItem jMenuItem3;
?? ?private JDesktopPane userMainjdp;

?? ?public UserMainFrm() {
?? ??? ?initComponents();
?? ??? ?// 設(shè)置位置
?? ??? ?setBounds(100, 200, 1050, 650);
?? ??? ?// 居中顯示
?? ??? ?this.setLocationRelativeTo(null);
?? ?}

?? ?private void initComponents() {

?? ??? ?userMainjdp = new JDesktopPane();
?? ??? ?jMenuBar1 = new JMenuBar();
?? ??? ?jMenu1 = new JMenu();
?? ??? ?jMenuItem1 = new JMenuItem();
?? ??? ?jMenuItem2 = new JMenuItem();
?? ??? ?jMenuItem3 = new JMenuItem();

?? ??? ?setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
?? ??? ?setTitle("圖書者主界面");
?? ??? ?
?? ??? ?jMenu1.setText("基本信息");

?? ??? ?jMenuItem1.setText("書籍信息");
?? ??? ?jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jMenuItem1ActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});
?? ??? ?jMenu1.add(jMenuItem1);

?? ??? ?jMenuItem2.setText("借書記錄");
?? ??? ?jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jMenuItem2ActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});
?? ??? ?jMenu1.add(jMenuItem2);

?? ??? ?jMenuItem3.setText("退出系統(tǒng)");
?? ??? ?jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
?? ??? ??? ?public void actionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ??? ??? ?jMenuItem3ActionPerformed(evt);
?? ??? ??? ?}
?? ??? ?});
?? ??? ?jMenu1.add(jMenuItem3);

?? ??? ?jMenuBar1.add(jMenu1);

?? ??? ?setJMenuBar(jMenuBar1);

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(userMainjdp,
?? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE));
?? ??? ?layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(userMainjdp,
?? ??? ??? ??? ?GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE));

?? ??? ?pack();
?? ?}

?? ?private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?int i = JOptionPane.showConfirmDialog(null, "確認(rèn)退出系統(tǒng)");
?? ??? ?if (i == 0) {
?? ??? ??? ?this.dispose();
?? ??? ?}
?? ?}

?? ?private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?UserBorrowDetail userBorrowDetail = new UserBorrowDetail();
?? ??? ?userBorrowDetail.setVisible(true);
?? ??? ?this.userMainjdp.add(userBorrowDetail);
?? ?}

?? ?private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
?? ??? ?BookInfoFrm infoFrm = new BookInfoFrm();
?? ??? ?infoFrm.setVisible(true);
?? ??? ?this.userMainjdp.add(infoFrm);
?? ?}

?? ?public static void main(String args[]) {
?? ??? ?java.awt.EventQueue.invokeLater(new Runnable() {
?? ??? ??? ?public void run() {
?? ??? ??? ??? ?new UserMainFrm().setVisible(true);
?? ??? ??? ?}
?? ??? ?});
?? ?}

}

UserManagerFrm.java

package com.sjsq.view;

import javax.swing.GroupLayout;
import javax.swing.JInternalFrame;

public class UserManagerFrm extends JInternalFrame {

?? ?public UserManagerFrm() {
?? ??? ?initComponents();
?? ?}

?? ?private void initComponents() {

?? ??? ?setClosable(true);

?? ??? ?GroupLayout layout = new GroupLayout(getContentPane());
?? ??? ?getContentPane().setLayout(layout);
?? ??? ?layout.setHorizontalGroup(
?? ??? ??? ??? ?layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 394, Short.MAX_VALUE));
?? ??? ?layout.setVerticalGroup(
?? ??? ??? ??? ?layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 278, Short.MAX_VALUE));

?? ??? ?pack();
?? ?}

}

 

相關(guān)文章

最新評論