⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bookmanage.java

📁 基于javaSwing的图书馆信息管理系统 使用oracle数据库连接
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
										- borrowedNum;
								getJTextField_copies().setText(
										copies.toString());
							} else {
								JOptionPane.showMessageDialog(null, "数据修改失败");
							}
						}

					}
				}
			});
		}
		return jButton_edit;
	}

	/**
	 * This method initializes jButton3
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJButton_del() {
		if (jButton_del == null) {
			jButton_del = new JButton();
			jButton_del.setIcon(new ImageIcon("E:/img/standard_127_20.png"));
			jButton_del.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (checkEmpty()) {

						// 书目记录的删除只有其所有图书复本都在库的情况下才可以
						// 即 copies = stocks
						// 而copies > stocks 则说明出错
						if (!deleteable) {
							JOptionPane.showMessageDialog(null,
									"书目记录的删除只有其所有图书复本都在库的情况下才可以");
						} else {
							BookOper db = new BookOper();
							String[] names = getJTableValue();
							System.out.println(names[0]);
							int ch = JOptionPane.showConfirmDialog(null,
									"你真的要删除该记录?", "删除数据",
									JOptionPane.YES_NO_OPTION);
							if (ch == JOptionPane.YES_OPTION) {
								if (db.delete(names[0])) {
									JOptionPane.showMessageDialog(null,
											"数据删除成功");
									// row = getJTable().getSelectedRow();
									// TableModel td = getJTable().getModel();
									// DefaultTableModel model =
									// (DefaultTableModel)
									// td;
									// model.removeRow(row);
									search(0);
								} else {
									JOptionPane.showMessageDialog(null,
											"数据删除失败");
								}
							}
						}
					}
				}
			});
		}
		return jButton_del;
	}

	/**
	 * This method initializes jToolBar1
	 * 
	 * @return javax.swing.JToolBar
	 */
	private JToolBar getJToolBar_borrowedNum() {
		if (jToolBar_borrowedNum == null) {
			jLabel_borrowedNum = new JLabel();
			jLabel_borrowedNum.setText("借出");
			jToolBar_borrowedNum = new JToolBar();
			jToolBar_borrowedNum.setFloatable(false);
			jToolBar_borrowedNum.add(jLabel_borrowedNum);
			jToolBar_borrowedNum.add(getJTextField_borrowedNum());
		}
		return jToolBar_borrowedNum;
	}

	/**
	 * This method initializes jTextField
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getJTextField_borrowedNum() {
		if (jTextField_borrowedNum == null) {
			jTextField_borrowedNum = new JTextField();
			jTextField_borrowedNum.setEditable(false);
		}
		return jTextField_borrowedNum;
	}

	/**
	 * This method initializes jPanel_info
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJPanel_info() {
		if (jPanel_info == null) {
			jLabel_pagination = new JLabel();
			jLabel_pagination.setIcon(new ImageIcon(
					"E:/img/standard_014_32.png"));
			jLabel_pagination
					.addMouseListener(new java.awt.event.MouseAdapter() {
						public void mousePressed(java.awt.event.MouseEvent e) {
							if (jPanel_pagination.isVisible()) {
								jPanel_pagination.setVisible(false);
								search(0);
							} else {
								jPanel_pagination.setVisible(true);
								pagination(1);
							}
						}
					});
			jPanel_info = new JPanel();
			jPanel_info.add(jLabel_pagination, null);
			jPanel_info.add(getJTextField_search(), null);
			jPanel_info.add(getJToggleButton_new(), null);
			jPanel_info.add(getJButton_borrow(), null);
		}
		return jPanel_info;
	}

	/**
	 * This method initializes jToggleButton_new
	 * 
	 * @return javax.swing.JToggleButton
	 */
	private JToggleButton getJToggleButton_new() {
		if (jToggleButton_new == null) {
			jToggleButton_new = new JToggleButton();
			jToggleButton_new.setIcon(new ImageIcon(
					"E:/img/standard_157_20.png"));
			jToggleButton_new.setText("新书推荐");
			jToggleButton_new
					.addItemListener(new java.awt.event.ItemListener() {
						public void itemStateChanged(java.awt.event.ItemEvent e) {
							if (jToggleButton_new.isSelected()) {
								search(1);
							} else {
								search(0);
							}
						}
					});
		}
		return jToggleButton_new;
	}

	/**
	 * This method initializes jButton_borrower
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJButton_borrow() {
		if (jButton_borrow == null) {
			jButton_borrow = new JButton();
			jButton_borrow.setIcon(new ImageIcon("E:/img/standard_158_20.png"));
			jButton_borrow.setText("借书");
			jButton_borrow
					.addActionListener(new java.awt.event.ActionListener() {
						public void actionPerformed(java.awt.event.ActionEvent e) {
							// .....要检查 是不是已续借过!!!!
							// 续借过的书归还后,有5天不能再次续借,作为续借缓冲期(供其他有需要的借阅者借阅)
							if (checkEmpty() && checkFree() && checkOutDate()
									&& checkRenewed()) {

								// 当借阅者已在近期(5天内)借阅记录上 借过此书,并归还
								// 此时,要作特殊处理
								// 若未续借,则说明此次借书为 续借!!!!
								// 若已续借,则借阅者 在5天内不可再续借!!!

								// 如果在借期,未续借过,则说明此次借书为 续借
								String detail_id = DetailOper.isRenewAction(
										getJTextField_isbn().getText().trim(),
										Login.BORR.getBorrower_id(), up);
								// 如果 此书在5天前归还了,未续借过,则说明此次借书为 续借
								String detail_id0 = DetailOper.isRenewAction0(
										getJTextField_isbn().getText().trim(),
										Login.BORR.getBorrower_id());
								if (detail_id0 != null) {
									Iterator iter = DetailOper.getInfo(3,
											detail_id0).iterator();
									if (iter.hasNext()) {
										selectedDetail = (Detail) iter.next();
									}
									selectedDetail.setReturn_date(null);
									selectedDetail.setIsReturn("0");
									renew(true);
								} else if (detail_id != null) {
									Iterator iter = DetailOper.getInfo(3,
											detail_id).iterator();
									if (iter.hasNext()) {
										selectedDetail = (Detail) iter.next();
									}
									selectedDetail.setReturn_date(null);
									selectedDetail.setIsReturn("0");
									renew(false);
								} else {

									String book = getJTextField_book()
											.getText();
									String isbn = getJTextField_isbn()
											.getText();
									Integer copies = Integer
											.valueOf(getJTextField_copies()
													.getText());
									int ch = JOptionPane.showConfirmDialog(
											null, "你想借《" + book + "》?", "借书?",
											JOptionPane.YES_NO_OPTION);
									if (ch == JOptionPane.YES_OPTION) {
										// 往Detail表中添加一记录
										// 并修改 此用户 的已借书数量+1
										// 及 此书 的副本数量-1

										// 记录当前时间为借书时间
										Date borrow_date = DetailOper
												.getSysdate();
										// ......
										// 这里应还书时间用 orecle时间函数计算
										// long next = 90*24*60*60*1000;
										// Date return_date = new
										// Date(b_date.getTime()+next);

										Detail detail = new Detail(null,
												Login.BORR.getBorrower_id(),
												getJTextField_isbn().getText(),
												borrow_date, "0", null, "0",
												null, null, null, null);
										Borrower borrower = new Borrower(
												Login.BORR.getBorrower_id(),
												Login.BORR.getBorrow_num() + 1);
										Book bok = new Book(isbn, copies - 1);

										if (DetailOper.add(detail)
												&& BorrowerOper
														.updateNum(borrower)
												&& BookOper.updateNum(bok)) {
											JOptionPane.showMessageDialog(null,
													"操作成功!");
											// 临时数据也要保存
											Login.BORR.setBorrow_num(Login.BORR
													.getBorrow_num() + 1);
											search(0);
											mySearch(1);
											RefreshTip();
											// 重置
											getJToggleButton_allDetail()
													.setSelected(false);
											getJToggleButton_urge()
													.setSelected(false);
											getJTextField_isbn().setText(null);
											selectedDetail = null;
										} else {
											JOptionPane.showMessageDialog(null,
													"操作失败!");
										}
									}
								}
							}
						}
					});
		}
		return jButton_borrow;
	}

	/**
	 * This method initializes jButton
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJButton_return() {
		if (jButton_return == null) {
			jButton_return = new JButton();
			jButton_return.setIcon(new ImageIcon("E:/img/standard_158_20.png"));
			jButton_return.setText("还书");
			jButton_return
					.addActionListener(new java.awt.event.ActionListener() {
						public void actionPerformed(java.awt.event.ActionEvent e) {
							if (checkMyEmpty()) {
								// // "流水号", "书名","借阅日期", "是否续借", "续借日期",
								// "是否已归还","归还日期", "须交罚金"}
								String book = selectedDetail.getBook();
								int ch = JOptionPane.showConfirmDialog(null,
										"你想还《" + book + "》?", "还书?",
										JOptionPane.YES_NO_OPTION);
								if (ch == JOptionPane.YES_OPTION) {
									// 往Detail表中修改记录
									// 并修改 此用户 的已借书数量-1
									// 及 此书 的副本数量+1

									// 交罚金!!!!!!!!
									if (selectedDetail.getFine() <= 0
											|| JOptionPane.showConfirmDialog(
													null, "这本书借阅期限已过,是否要交罚金?",
													"交罚金?!",
													JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION

									) {
										// 交了罚金,故设罚金为0
										// NO!!
										// 要记录下来
										// selectedDetail.setFine(0f);
										// 记录当前时间为还书时间
										Date return_date = DetailOper
												.getSysdate();
										selectedDetail
												.setReturn_date(return_date);
										// 设置已还书
										selectedDetail.setIsReturn("1");

										// /要考虑 事务 问题????!!!!!
										Borrower borrower = new Borrower(
												Login.BORR.getBorrower_id(),
												Login.BORR.getBorrow_num() - 1);
										// 通过isbn查找原copies
										String isbn = selectedDetail.getIsbn();
										Book bok = (Book) BookOper.query(isbn)
												.iterator().next();
										Integer copies = bok.getCopies() + 1;
										bok = new Book(isbn, copies);

										if (DetailOper.update(selectedDetail)
												& BorrowerOper
														.updateNum(borrower)
												& BookOper.updateNum(bok)) {
											JOptionPane.showMessageDialog(null,
													"操作成功!");
											// 临时数据也要保存
											Login.BORR.setBorrow_num(Login.BORR
													.getBorrow_num() - 1);
											search(0);
											outDate = false;// 重置
											mySearch(1);
											RefreshTip();
											selectedDetail = null;// 重置
										} else {
											JOptionPane.showMessageDialog(null,
													"操作失败!");
										}
									}
								}
							}
						}
					});
		}
		return jButton_return;
	}

	// 已借图书表 检查 是否已选择
	private boolean checkMyEmpty() {
		if (selectedDetail == null) {
			JOptionPane.showMessageDialog(null, "请选择一条图书记录来进行操作!!");
			return false;
		}
		return true;
	}

	private void renew(boolean flag) {
		int ch = 0;
		if (flag) {
			String book = getJTextField_book().getText();
			ch = JOptionPane.showConfirmDialog(null, "你刚(五天内)归还这本《" + book
					+ "》,你是否想续借此书?", "续借?", JOptionPane.YES_NO_OPTION);
		} else {
			String book = selectedDetail.getBook();
			ch = JOptionPane.showConfirmDialog(null, "你想续借《" + book + "》?",
					"续借?", JOptionPane.YES_NO_OPTION);
		}

		if (ch == JOptionPane.YES_OPTION) {
			// 往Detail表中修改记录

			// 记录当前时间为续借时间
			Date renew_date = DetailOper.getSysdate();
			selectedDetail.setRenew_date(renew_date);
			// 设置已续借
			selectedDetail.setIsRenew("1");

			if (DetailOper.update(selectedDetail)) {
				JOptionPane.showMessageDialog(null, "操作成功!");

				// 特殊处理---借了,还,还了,还借@!#$@#$#
				if (flag) {
					String isbn = getJTextField_isbn().getText();
					Integer copies = Integer.valueOf(getJTextField_copies()
							.getText());
					Borrower borrower = new Borrower(Login.BORR
							.getBorrower_id(), Login.BORR.getBorrow_num() + 1);
					Book bok = new Book(isbn, copies - 1);

					BorrowerOper.updateNum(borrower);
					BookOper.updateNum(bok);

					// 临时数据也要保存
					Login.BORR.setBorrow_num(Login.BORR.getBorrow_num() + 1);
				}
				search(0);
				mySearch(1);
				RefreshTip();
				// 重置
				getJToggleButton_allDetail().setSelected(false);
				getJToggleButton_urge().setSelected(false);
				getJTextField_isbn().setText(null);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -