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

📄 registreservation.java

📁 一个KTV管理系统
💻 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 + -