📄 reservationmanageframe.java
字号:
DefaultTableModel md = new DefaultTableModel(pi, name);
reservationTable = new JTable(md);
Room roo = null;
Calendar tm = Calendar.getInstance();
// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE) + "
// "
// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
// + tm.get(tm.SECOND));
long systemtime = 0;
long checkInTime = 0;
String[] Intemp = null;
String[] Intemp1 = null;
String[] Intemp2 = null;
Vector v = getReservation();
Iterator ite = v.iterator();
Intemp = reservationTimeTextField.getText().split(" ");
Intemp1 = Intemp[0].split("-");
Intemp2 = Intemp[1].split(":");
tm.set(tm.YEAR, Integer.parseInt(Intemp1[0]));
tm.set(tm.MONTH, Integer.parseInt(Intemp1[1]));
tm.set(tm.DATE, Integer.parseInt(Intemp1[2]));
tm.set(tm.HOUR_OF_DAY, Integer.parseInt(Intemp2[0]));
tm.set(tm.MINUTE, Integer.parseInt(Intemp2[1]));
tm.set(tm.SECOND, Integer.parseInt(Intemp2[2]));
// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE) + "
// "
// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
// + tm.get(tm.SECOND));
systemtime = tm.getTimeInMillis();
while (ite.hasNext()) {
Reservation value = (Reservation) ite.next();
Object[] date = { value.getGuestName(),
String.valueOf(value.getGuestTelephone()),
value.getRoomNumber(), value.getRoomType(),
value.getReservationTime(), value.getReservationType() };
Intemp = value.getReservationTime().split(" ");
Intemp1 = Intemp[0].split("-");
Intemp2 = Intemp[1].split(":");
tm.set(tm.YEAR, Integer.parseInt(Intemp1[0]));
tm.set(tm.MONTH, Integer.parseInt(Intemp1[1]));
tm.set(tm.DATE, Integer.parseInt(Intemp1[2]));
tm.set(tm.HOUR_OF_DAY, Integer.parseInt(Intemp2[0]));
tm.set(tm.MINUTE, Integer.parseInt(Intemp2[1]));
tm.set(tm.SECOND, Integer.parseInt(Intemp2[2]));
checkInTime = tm.getTimeInMillis();
// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE)
// + " "
// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
// + tm.get(tm.SECOND));
// 预订时间超过当前时间自动从数据库中删除
if (checkInTime >= systemtime) {
// 将数据添加到数据模型中
md.addRow(date);
} else {
deleteReservation(value.getRoomNumber());
roo = getARoom(value.getRoomNumber());
roo.setRoomStatement("可用");
updateRoomInfo(roo);
}
}
reservationTable.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int row = reservationTable.getSelectedRow();
guestNameTextField.setText(reservationTable.getValueAt(row,
0).toString());
guestTelephoneTextField.setText(reservationTable
.getValueAt(row, 1).toString());
roomNumberTextField.setText(reservationTable.getValueAt(
row, 2).toString());
roomTypeComboBox.setSelectedItem(reservationTable
.getValueAt(row, 3).toString().trim());
reservationTimeTextField.setText(reservationTable
.getValueAt(row, 4).toString().substring(0, 19));
}
});
} else {
DefaultTableModel model = (DefaultTableModel) reservationTable
.getModel();
int rows = model.getRowCount();
// 删除数据模型之前的所有数据
for (int i = rows - 1; i >= 0; i--) {
model.removeRow(i);
}
Room roo = null;
Calendar tm = Calendar.getInstance();
// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE) + "
// "
// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
// + tm.get(tm.SECOND));
long systemtime = 0;
long checkInTime = 0;
String[] Intemp = null;
String[] Intemp1 = null;
String[] Intemp2 = null;
Vector v = getReservation();
Iterator ite = v.iterator();
Intemp = reservationTimeTextField.getText().split(" ");
Intemp1 = Intemp[0].split("-");
Intemp2 = Intemp[1].split(":");
tm.set(tm.YEAR, Integer.parseInt(Intemp1[0]));
tm.set(tm.MONTH, Integer.parseInt(Intemp1[1]));
tm.set(tm.DATE, Integer.parseInt(Intemp1[2]));
tm.set(tm.HOUR_OF_DAY, Integer.parseInt(Intemp2[0]));
tm.set(tm.MINUTE, Integer.parseInt(Intemp2[1]));
tm.set(tm.SECOND, Integer.parseInt(Intemp2[2]));
// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE) + "
// "
// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
// + tm.get(tm.SECOND));
systemtime = tm.getTimeInMillis();
while (ite.hasNext()) {
Reservation value = (Reservation) ite.next();
Object[] date = { value.getGuestName(),
String.valueOf(value.getGuestTelephone()),
value.getRoomNumber(), value.getRoomType(),
value.getReservationTime(), value.getReservationType() };
Intemp = value.getReservationTime().split(" ");
Intemp1 = Intemp[0].split("-");
Intemp2 = Intemp[1].split(":");
tm.set(tm.YEAR, Integer.parseInt(Intemp1[0]));
tm.set(tm.MONTH, Integer.parseInt(Intemp1[1]));
tm.set(tm.DATE, Integer.parseInt(Intemp1[2]));
tm.set(tm.HOUR_OF_DAY, Integer.parseInt(Intemp2[0]));
tm.set(tm.MINUTE, Integer.parseInt(Intemp2[1]));
tm.set(tm.SECOND, Integer.parseInt(Intemp2[2]));
checkInTime = tm.getTimeInMillis();
// System.out.println(tm.get(tm.MONDAY) + " " + tm.get(tm.DATE)
// + " "
// + tm.get(tm.HOUR_OF_DAY) + " " + tm.get(tm.MINUTE) + " "
// + tm.get(tm.SECOND));
// 预订时间超过当前时间自动从数据库中删除
if (checkInTime >= systemtime) {
// 将数据添加到数据模型中
model.addRow(date);
} else {
deleteReservation(value.getRoomNumber());
roo = getARoom(value.getRoomNumber());
roo.setRoomStatement("可用");
updateRoomInfo(roo);
}
}
}
return reservationTable;
}
// 向数据库中新增一条预订信息
private boolean insertReservation(Reservation temp) {
boolean flag = false;
flag = new ReservationDao().insertReservation(temp);
return flag;
}
// 更新预订信息
private boolean updateResevaton(Reservation demo, String demo2) {
boolean flag = false;
flag = new ReservationDao().updateReservation(demo, demo2);
return flag;
}
// 在数据库中删除一条预订信息
private boolean deleteReservation(String temp) {
boolean flag = false;
flag = new ReservationDao().deleteReservation(temp);
return flag;
}
// 取得所有的宾客预订信息
private Vector getReservation() {
Vector v = null;
v = new ReservationDao().getAllReservation();
return v;
}
public void actionPerformed(ActionEvent e) {
DefaultTableModel model = (DefaultTableModel) reservationTable
.getModel();
JButton temp = (JButton) e.getSource();
if (temp.getText().equals("预订修改")) {
if (checkInputValue()) {
try {
int row = reservationTable.getSelectedRow();
String value = reservationTable.getValueAt(row, 2)
.toString().trim();
Room roo = getARoom(value);
String rn = roomNumberTextField.getText().trim();
Room roo2 = getARoom(rn);
Reservation value2 = new Reservation(guestNameTextField
.getText(), Long.parseLong(guestTelephoneTextField
.getText()), roomNumberTextField.getText(),
roomTypeComboBox.getSelectedItem().toString(),
reservationTimeTextField.getText(), "N");
if (roo2 != null) {
if (value.equals(rn)) {
if (updateResevaton(value2, value)) {
model.removeRow(row);
Object[] date = {
guestNameTextField.getText(),
guestTelephoneTextField.getText(),
roomNumberTextField.getText(),
roomTypeComboBox.getSelectedItem()
.toString(),
reservationTimeTextField.getText(), "N" };
model.addRow(date);
JOptionPane.showMessageDialog(null, "修改预订信息成功",
"提示信息", JOptionPane.YES_OPTION);
}
} else {
if (roo2.getRoomStatement().trim().equals("可用")) {
roo.setRoomStatement("可用");
roo2.setRoomStatement("预订");
if (updateResevaton(value2, value)
&& updateRoomInfo(roo)
&& updateRoomInfo(roo2)) {
model.removeRow(row);
Object[] date = {
guestNameTextField.getText(),
guestTelephoneTextField.getText(),
roomNumberTextField.getText(),
roomTypeComboBox.getSelectedItem()
.toString(),
reservationTimeTextField.getText(),
"N" };
model.addRow(date);
RoomButton jb2 = MainFrame.getInstance()
.getHashtable(value);
jb2
.setIcon(new ImageIcon(
"icon/mainframe/UltraMix35_001.jpg"));
jb2.setRoomStatement("可用");
RoomButton jb = MainFrame.getInstance()
.getHashtable(rn);
jb
.setIcon(new ImageIcon(
"icon/mainframe/UltraMix08_001.jpg"));
jb.setRoomStatement("预订");
JOptionPane.showMessageDialog(null,
"修改预订信息成功", "提示信息",
JOptionPane.YES_OPTION);
}
} else {
JOptionPane.showMessageDialog(null,
"不能预订该包间,正在被使用或已被预定或已停用", "提示信息",
JOptionPane.YES_OPTION);
}
}
} else {
JOptionPane.showMessageDialog(null, "该包间不存在", "提示信息",
JOptionPane.YES_OPTION);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "修改失败,请选中要修改的记录",
"提示信息", JOptionPane.YES_OPTION);
}
}
}
if (temp.getText().equals("预订删除")) {
try {
int row = reservationTable.getSelectedRow();
String value = reservationTable.getValueAt(row, 2).toString()
.trim();
// System.out.println(value);
Room roo = getARoom(value);
roo.setRoomStatement("可用");
if (deleteReservation(value) && updateRoomInfo(roo)) {
model.removeRow(row);
RoomButton jb = MainFrame.getInstance().getHashtable(value);
jb.setIcon(new ImageIcon(
"icon/mainframe/UltraMix35_001.jpg"));
jb.setRoomStatement("可用");
JOptionPane.showMessageDialog(null, "删除预订信息成功", "提示信息",
JOptionPane.YES_OPTION);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "无法删除", "提示信息",
JOptionPane.YES_OPTION);
}
}
if (temp.getText().equals("刷新")) {
int rows = model.getRowCount();
// 删除表格中目前的数据
for (int i = rows - 1; i >= 0; i--) {
model.removeRow(i);
}
Vector v = getReservation();
Iterator iter = v.iterator();
while (iter.hasNext()) {
Reservation value = (Reservation) iter.next();
Object[] date = { value.getGuestName(),
String.valueOf(value.getGuestTelephone()),
value.getRoomNumber(), value.getRoomType(),
value.getReservationTime(), value.getReservationType() };
// 将数据添加到数据模型中
model.addRow(date);
}
}
if (temp.getText().equals("查询")) {
int rows = model.getRowCount();
for (int i = rows - 1; i >= 0; i--) {
System.out
.println(reservationTable.getValueAt(i, 2).toString());
if (!queryTextField.getText().equals(
reservationTable.getValueAt(i, 2).toString().trim()))
model.removeRow(i);
}
}
}
/**
* This method initializes freshButton
*
* @return javax.swing.JButton
*/
private JButton getFreshButton() {
if (freshButton == null) {
freshButton = new JButton();
freshButton.setText("刷新");
freshButton.setBounds(new java.awt.Rectangle(400, 20, 80, 30));
freshButton.addActionListener(this);
}
return freshButton;
}
// 该窗口所有输入信息的约束
private boolean checkInputValue() {
// boolean flag = false;
Check check = new Check();
if (check.checkInputIsNull(guestNameTextField.getText())) {
JOptionPane.showMessageDialog(null, "宾客姓名不能为空", "提示信息",
JOptionPane.YES_OPTION);
guestNameTextField.requestFocus();
return false;
}
if (check.checkIsContainNumber(guestNameTextField.getText().trim())) {
JOptionPane.showMessageDialog(null, "宾客姓名不能包含数字", "提示信息",
JOptionPane.YES_OPTION);
guestNameTextField.requestFocus();
return false;
}
if (check.checkInputIsNull(guestTelephoneTextField.getText())) {
JOptionPane.showMessageDialog(null, "宾客联系方式不能为空", "提示信息",
JOptionPane.YES_OPTION);
guestTelephoneTextField.requestFocus();
return false;
}
if (check.checkIsContainCharactor(guestTelephoneTextField.getText()
.trim())) {
JOptionPane.showMessageDialog(null, "宾客联系方式不能包含有字母", "提示信息",
JOptionPane.YES_OPTION);
guestTelephoneTextField.requestFocus();
return false;
}
if (check.checkInputIsNull(roomNumberTextField.getText())) {
JOptionPane.showMessageDialog(null, "预订包间号不能为空", "提示信息",
JOptionPane.YES_OPTION);
roomNumberTextField.requestFocus();
return false;
}
if (check.checkInputIsNull(reservationTimeTextField.getText())) {
JOptionPane.showMessageDialog(null, "预订时间不能为空", "提示信息",
JOptionPane.YES_OPTION);
reservationTimeTextField.requestFocus();
return false;
}
if (!check.checkDateFormatIsLegal(reservationTimeTextField.getText())) {
JOptionPane.showMessageDialog(null, "预订时间只能是2007-11-17 00:12:25格式",
"提示信息", JOptionPane.YES_OPTION);
reservationTimeTextField.requestFocus();
return false;
}
return true;
}
private boolean updateRoomInfo(Room value) {
boolean flag = false;
flag = new RoomSettingDao().updateRoomInfo(value);
return flag;
}
// 通过房间号取得相应的房间信息
private static Room getARoom(String value) {
Room r = null;
r = new RoomSettingDao().getARoom(value);
return r;
}
public static void main(String[] args) {
// ReservationManageFrame.getInstance();
}
} // @jve:decl-index=0:visual-constraint="215,9"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -