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

📄 booklenddialog.java

📁 一个简单的图书馆的管理系统,该系统主要是针对学校的图书馆而做的
💻 JAVA
字号:
package librarymanagement.view.dialog;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import librarymanagement.action.dialogAction.BorrowBookAction;
import librarymanagement.common.CalculateDaysBetweenDates;
import librarymanagement.view.common.Appreance;
import librarymanagement.view.common.ButtonCommon;
import librarymanagement.view.common.CenterLoction;
import librarymanagement.view.common.CheckInputText;
import librarymanagement.view.common.CommonTable;
import librarymanagement.view.common.DataPicker;
import librarymanagement.vo.BorrowBookVo;

/**
 * 构建图书借阅对话框
 * 
 * @author 虎兴龙
 * 
 */
public class BookLendDialog extends JDialog {

	protected JLabel bookId, readerId;
	protected JLabel lendTime;
	protected JLabel returnTime;
	protected JTextField bookIdT, readerIdT;
	protected JComboBox timeBox1, timeBox3;
	protected CommonTable table;
	protected JButton b1, b2;
	protected JPanel topPanel, infoPanel, btnPanel;
	protected JScrollPane scrollPanel;
	protected JSplitPane splitPanel;

	public BookLendDialog() {
		super();
		this.setTitle("借阅信息");
		this.setSize(900, 700);
		this.setModal(true);
		ImageIcon i = new ImageIcon("img/toolbarimg/查询.jpg");
		this.setIconImage(i.getImage());
		new Appreance(1);
		CenterLoction.locateCenter(this);
		initComponent();
		this.add(setSplitPanel());
	}

	/**
	 * 构建SplitPane
	 * 
	 * @return 返回一个JSplitPane对象
	 */
	private JSplitPane setSplitPanel() {
		if (splitPanel == null) {
			splitPanel = new JSplitPane();
			splitPanel.setOrientation(JSplitPane.VERTICAL_SPLIT);
			splitPanel.setTopComponent(buildTopPanel());
			splitPanel.setBottomComponent(buildBottomPanel());
		}
		return splitPanel;
	}

	private JScrollPane buildBottomPanel() {
		if (scrollPanel == null) {
			scrollPanel = new JScrollPane(buildTable());
		}
		return scrollPanel;
	}

	/**
	 * 构建JSpllitPane 的TopPanel
	 * 
	 * @return 返回JPanel对象
	 */
	protected JPanel buildTopPanel() {
		if (topPanel == null) {
			topPanel = new JPanel(new BorderLayout(40, 5));
			topPanel.add(buildIntoPanel(), "Center");
			topPanel.add(buildBtnPanel(), "South");
		}
		return topPanel;
	}

	/**
	 * 构建按钮面板
	 * 
	 * @return 返回JPanel对象
	 */
	protected JPanel buildBtnPanel() {
		if (btnPanel == null) {
			btnPanel = new JPanel();
			btnPanel.add(b1);
			btnPanel.add(b2);
		}
		return btnPanel;
	}

	/**
	 * 构建信息栏
	 * 
	 * @return 返回一个JPanel对象
	 */
	protected JPanel buildIntoPanel() {
		if (infoPanel == null) {
			infoPanel = new JPanel(new GridLayout(2, 4, 2, 15));

			infoPanel.add(bookId);
			infoPanel.add(bookIdT);
			infoPanel.add(readerId);
			infoPanel.add(readerIdT);

			infoPanel.add(lendTime);
			infoPanel.add(timeBox1);
			infoPanel.add(returnTime);
			infoPanel.add(timeBox3);
		}
		return infoPanel;
	}

	/**
	 * 初始化各个组件
	 */
	protected void initComponent() {
		bookId = new JLabel("图书编号");
		readerId = new JLabel("读者编号");
		lendTime = new JLabel("借阅时间");
		// lendTime.setVisible(false);
		returnTime = new JLabel("应还时间");
		timeBox1 = new DataPicker().getDataPacker();
		// timeBox1.setVisible(false);
		timeBox3 = new DataPicker().getDataPacker();
		bookIdT = new JTextField(16);
		readerIdT = new JTextField(16);
		ImageIcon i1 = new ImageIcon("img/dialogimg/保存.jpg");
		ImageIcon i2 = new ImageIcon("img/dialogimg/退出Dialog.jpg");
		b1 = buildBtn("确定", i1);
		b2 = buildBtn("取消", i2);
	}

	/**
	 * 构建表
	 * 
	 * @return 返回一个JTable 对象
	 * 
	 */
	protected JButton buildBtn(String name, ImageIcon i1) {
		JButton b = new ButtonCommon(name, i1);

		b.setActionCommand(name);
		b.addActionListener(new BorrowBookAction(this));
		return b;
	}

	public JTable buildTable() {
		if (table == null) {
			String[] title = { "图书编号", "图书名称", "读者编号", "读者姓名", "所属学院", "存放位置",
					"读者状态", "未还数量", "借阅日期", "应还日期", };
			Object[][] data = {};
			table = new CommonTable(title, data);
			table.setColumnSize(3, 150);
			table.setColumnSize(4, 50);
			table.setColumnSize(5, 100);
			table.setColumnSize(6, 100);
		}
		return table;
	}

	/**
	 * 借书信息
	 * 
	 * @return 返回BorrowBookVo对象
	 */
	public BorrowBookVo getInputValue() {
		String returnTime = (String) timeBox3.getSelectedItem();
		String lendTime = (String) timeBox1.getSelectedItem();
		int bookId = Integer.parseInt(bookIdT.getText());
		int readerId = Integer.parseInt(readerIdT.getText());
		return new BorrowBookVo(bookId, readerId, lendTime, returnTime);
	}

	public boolean checkInputTxt() {
		if (CheckInputText.checkInputIsNull(bookIdT.getText())) {
			JOptionPane.showMessageDialog(null, "图书编号不能为空", "提示信息",
					JOptionPane.YES_OPTION);
			bookIdT.requestFocus();
			return false;
		}
		if (CheckInputText.checkInputIsNull(readerIdT.getText())) {
			JOptionPane.showMessageDialog(null, "讀者编号不能为空", "提示信息",
					JOptionPane.YES_OPTION);
			readerIdT.requestFocus();
			return false;
		}
		if (!CheckInputText.checkIsContainNumber(bookIdT.getText())) {
			JOptionPane.showMessageDialog(null, "图书编号只能为数字", "提示信息",
					JOptionPane.YES_OPTION);
			bookIdT.requestFocus();
			return false;
		}
		if (!CheckInputText.checkIsContainNumber(readerIdT.getText())) {
			JOptionPane.showMessageDialog(null, "讀者编号只能为数字", "提示信息",
					JOptionPane.YES_OPTION);
			readerIdT.requestFocus();
			return false;
		}
		long betweenDays = CalculateDaysBetweenDates.calculateDaysBetweenDates(
				timeBox1.getSelectedItem().toString(), timeBox3
						.getSelectedItem().toString());
		if (betweenDays > 60) {
			JOptionPane.showMessageDialog(null, "借阅日期不能超过60天!", "错误提示",
					JOptionPane.YES_OPTION);
			return false;
		}
		if (betweenDays <= 0) {
			JOptionPane.showMessageDialog(null, "应还日期应大于借阅日期!", "错误提示",
					JOptionPane.YES_OPTION);
			return false;
		}
		return true;
	}

	 
}

⌨️ 快捷键说明

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