📄 registreservation.java
字号:
package view.mainframe.guestregister.reservationmanageframe;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Calendar;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import view.mainframe.MainFrame;
import vo.Reservation;
import vo.Room;
import common.checkinputvalue.Check;
import common.method.RoomButton;
import dao.reservation.ReservationDao;
import dao.roomsetting.RoomSettingDao;
public class registReservation extends JFrame implements ActionListener {
private static registReservation instance = null;
private JPanel jContentPane = null;
private JLabel roomNumberLabel = null;
private JLabel roomTypeLabel = null;
private JLabel guestNameLabel = null;
private JLabel guestTelephoneLabel = null;
private JLabel timeLabel = null;
private JTextField guestNameTextField = null;
private JTextField roomTypeTextField = null;
private JTextField timeTextField = null;
private JTextField guestTelTextField = null;
private JTextField roomNumberTextField = null;
private JButton okButton = null;
// 单子模式,参数为房间号,作用是新增预订记录
public static registReservation getInstance(String roomNumber) {
if (instance == null) {
instance = new registReservation();
}
Room r = getARoom(roomNumber);
// 部分TextField初始化
instance.roomNumberTextField.setText(r.getRoomNumber());
instance.roomTypeTextField.setText(r.getRoomType().trim());
Calendar time = Calendar.getInstance();
instance.timeTextField.setText(time.get(time.YEAR) + "-"
+ (time.get(time.MONTH) + 1) + "-" + time.get(time.DATE) + " "
+ time.get(time.HOUR_OF_DAY) + ":" + time.get(time.MINUTE)
+ ":" + time.get(time.SECOND));
instance.setVisible(true);
return instance;
}
// 设置窗口为居中位置
private void setWindowLocation(Window w) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension windowSize = w.getSize();
w.setBounds((int) (screenSize.getWidth() - windowSize.getWidth()) / 2,
(int) (screenSize.getHeight() - windowSize.getHeight()) / 2,
(int) windowSize.getWidth(), (int) windowSize.getHeight());
}
// 通过房间号取得相应的房间信息
private static Room getARoom(String value) {
Room r = null;
r = new RoomSettingDao().getARoom(value);
return r;
}
/**
* This is the default constructor
*/
private registReservation() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(468, 284);
this.setContentPane(getJContentPane());
this.setTitle("新增预订信息");
setWindowLocation(this);
this.setResizable(false);
try {
javax.swing.UIManager
.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
} catch (Exception e1) {
e1.printStackTrace();
}
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
registReservation temp = (registReservation) e.getWindow();
temp.setVisible(false);
// 关闭窗口时,清空可编辑区域
temp.guestNameTextField.setText("");
temp.guestTelTextField.setText("");
temp.roomNumberTextField.setText("");
temp.dispose();
// 更新主界面的数据
MainFrame.getInstance().refresh();
}
});
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
timeLabel = new JLabel();
timeLabel.setBounds(new java.awt.Rectangle(20, 150, 70, 40));
timeLabel.setText("预订时间");
guestTelephoneLabel = new JLabel();
guestTelephoneLabel.setBounds(new java.awt.Rectangle(205, 30, 85,
40));
guestTelephoneLabel.setText("宾客联系方式");
guestNameLabel = new JLabel();
guestNameLabel.setBounds(new java.awt.Rectangle(20, 30, 70, 40));
guestNameLabel.setText("宾客姓名");
roomTypeLabel = new JLabel();
roomTypeLabel.setBounds(new java.awt.Rectangle(20, 90, 70, 40));
roomTypeLabel.setText("包间类型");
roomNumberLabel = new JLabel();
roomNumberLabel.setBounds(new java.awt.Rectangle(205, 90, 85, 40));
roomNumberLabel.setText("包间号");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(roomNumberLabel, null);
jContentPane.add(roomTypeLabel, null);
jContentPane.add(guestNameLabel, null);
jContentPane.add(guestTelephoneLabel, null);
jContentPane.add(timeLabel, null);
jContentPane.add(getGuestNameTextField(), null);
jContentPane.add(getRoomTypeTextField(), null);
jContentPane.add(getTimeTextField(), null);
jContentPane.add(getGuestTelTextField(), null);
jContentPane.add(getRoomNumberTextField(), null);
jContentPane.add(getOkButton(), null);
}
return jContentPane;
}
/**
* This method initializes guestNameTextField
*
* @return javax.swing.JTextField
*/
private JTextField getGuestNameTextField() {
if (guestNameTextField == null) {
guestNameTextField = new JTextField();
guestNameTextField
.setBounds(new java.awt.Rectangle(105, 30, 80, 40));
}
return guestNameTextField;
}
/**
* This method initializes roomTypeTextField
*
* @return javax.swing.JTextField
*/
private JTextField getRoomTypeTextField() {
if (roomTypeTextField == null) {
roomTypeTextField = new JTextField();
roomTypeTextField
.setBounds(new java.awt.Rectangle(105, 90, 80, 40));
roomTypeTextField.setEditable(false);
}
return roomTypeTextField;
}
/**
* This method initializes timeTextField
*
* @return javax.swing.JTextField
*/
private JTextField getTimeTextField() {
if (timeTextField == null) {
timeTextField = new JTextField();
timeTextField.setBounds(new java.awt.Rectangle(105, 150, 130, 40));
}
return timeTextField;
}
/**
* This method initializes guestTelTextField
*
* @return javax.swing.JTextField
*/
private JTextField getGuestTelTextField() {
if (guestTelTextField == null) {
guestTelTextField = new JTextField();
guestTelTextField
.setBounds(new java.awt.Rectangle(305, 30, 140, 40));
}
return guestTelTextField;
}
/**
* This method initializes roomNumberTextField
*
* @return javax.swing.JTextField
*/
private JTextField getRoomNumberTextField() {
if (roomNumberTextField == null) {
roomNumberTextField = new JTextField();
roomNumberTextField.setBounds(new java.awt.Rectangle(305, 90, 90,
40));
roomNumberTextField.setEditable(false);
}
return roomNumberTextField;
}
/**
* This method initializes okButton
*
* @return javax.swing.JButton
*/
private JButton getOkButton() {
if (okButton == null) {
okButton = new JButton();
okButton.setBounds(new java.awt.Rectangle(275, 150, 117, 38));
okButton.setText("新增预订");
okButton.addActionListener(this);
}
return okButton;
}
// 该窗口所有输入信息的约束
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(guestTelTextField.getText())) {
JOptionPane.showMessageDialog(null, "宾客联系方式不能为空", "提示信息",
JOptionPane.YES_OPTION);
guestTelTextField.requestFocus();
return false;
}
if (check.checkIsContainCharactor(guestTelTextField.getText().trim())) {
JOptionPane.showMessageDialog(null, "宾客联系方式不能包含有字母", "提示信息",
JOptionPane.YES_OPTION);
guestTelTextField.requestFocus();
return false;
}
if (check.checkInputIsNull(timeTextField.getText())) {
JOptionPane.showMessageDialog(null, "预订时间不能为空", "提示信息",
JOptionPane.YES_OPTION);
timeTextField.requestFocus();
return false;
}
if (!check.checkDateFormatIsLegal(timeTextField.getText())) {
JOptionPane.showMessageDialog(null, "预订时间只能是2008-03-17 00:12:25格式",
"提示信息", JOptionPane.YES_OPTION);
timeTextField.requestFocus();
return false;
}
return true;
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JButton temp = (JButton) e.getSource();
if (temp.getText().equals("新增预订")) {
if (checkInputValue()) {
String rn = roomNumberTextField.getText().trim();
Room roo = getARoom(rn);
if (roo != null) {
if (roo.getRoomStatement().trim().equals("可用")) {
Reservation value = new Reservation(guestNameTextField
.getText(), Long.parseLong(guestTelTextField
.getText()), roomNumberTextField.getText(),
roomTypeTextField.getText().toString(),
timeTextField.getText(), "N");
roo.setRoomStatement("预订");
if (insertReservation(value) && updateRoomInfo(roo)) {
RoomButton jb = MainFrame.getInstance()
.getHashtable(rn);
jb.setIcon(new ImageIcon(
"icon/mainframe/UltraMix08_001.jpg"));
jb.setRoomStatement("预订");
this.setVisible(false);
this.guestNameTextField.setText("");
this.guestTelTextField.setText("");
this.roomNumberTextField.setText("");
this.dispose();
reservationConfirmFrame.getInstance();
}
} else {
JOptionPane.showMessageDialog(null,
"不能预订该包间,正在被使用或已被预定或已停用", "提示信息",
JOptionPane.YES_OPTION);
}
} else {
JOptionPane.showMessageDialog(null, "该包间不存在", "提示信息",
JOptionPane.YES_OPTION);
}
}
}
}
private boolean updateRoomInfo(Room value) {
boolean flag = false;
flag = new RoomSettingDao().updateRoomInfo(value);
return flag;
}
// 向数据库中新增一条预订信息
private boolean insertReservation(Reservation temp) {
boolean flag = false;
flag = new ReservationDao().insertReservation(temp);
return flag;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -