📄 booklenddialog.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 + -