📄 reserveroomframe.java
字号:
import java.awt.Color;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import java.util.Vector;
import javax.swing.JButton;
public class ReserveRoomFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JTextField nameTextField = null;
private JTextField entourageNumTextField = null;
private JTextField arrivalDateTextField = null;
private JButton OKButton = null;
private JButton exitButton = null;
private JPanel OtherInfoPanel = null;
private JLabel nameLabel = null;
private JLabel entourageNumLabel = null;
private JPanel blankRoomListPanel = null;
private JPanel choosenRoomListPanel = null;
private JLabel arrivalDateLabel = null;
private JLabel blankHintLabel = null;
private JLabel choosenHintLabel = null;
// 用表格来表示房间列表
DefaultTableModel blankRoomModel = new DefaultTableModel();
JTable blankRoomTable = new JTable(blankRoomModel);
DefaultTableModel choosenRoomModel = new DefaultTableModel();
JTable choosenRoomTable = new JTable(choosenRoomModel);
//生成预订类,管理获取房间状态信息,更新数据库
ReserveRoom reserveRoom = new ReserveRoom();
Vector blankRoomList=new Vector();
Vector haveChoosenRoomList=new Vector();
private JButton removeRoomButton = null;
/**
* This is the default constructor
*/
public ReserveRoomFrame() {
super();
initialize();
//从ReserveRoom类型对象获取房间状态信息
//设置从ReserveRoom类对象获取的信息: 房间状态信息
//刚开始,reserveRoom.reserveInfo.choosenRoomList放的是空房间信息表
Room room=new Room();
blankRoomList=new Vector();
blankRoomList = reserveRoom.getBlankRoomList();
//将房间信息表放到那个Table中
for(int i=0;i<blankRoomList.size();i++)
{
room=(Room)blankRoomList.get(i);
blankRoomModel.addRow(new Object[]{ room.id.toString().trim(),
room.roomClass.toString().trim(),
Integer.toString(room.fee)
});
}
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(310, 307);
this.setName("ReserveRoomFrame");
this.setContentPane(getJContentPane());
this.setTitle("预定");
JScrollPane blanktablescrollpane = new JScrollPane(blankRoomTable);
blankRoomListPanel.add(blanktablescrollpane);
blankRoomListPanel.add(blanktablescrollpane);
JScrollPane choosentablescrollpane = new JScrollPane(choosenRoomTable);
choosenRoomListPanel.add(choosentablescrollpane);
choosenRoomListPanel.add(choosentablescrollpane);
// ///////////////////////////////////////////
blankRoomModel.addColumn("房号");
blankRoomModel.addColumn("类别");
blankRoomModel.addColumn("价格");
blankRoomTable.setPreferredScrollableViewportSize(new Dimension(170,
150));
blankRoomTable.setBackground(new Color(255, 255, 210));
blankRoomTable.setRowHeight(20);
blankRoomTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// ////////////////////////////////////////// /
choosenRoomModel.addColumn("房号");
choosenRoomModel.addColumn("类别");
choosenRoomTable.setPreferredScrollableViewportSize(new Dimension(110,
150));
choosenRoomTable.setBackground(new Color(255, 255, 210));
choosenRoomTable.setRowHeight(20);
choosenRoomTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// ////////////////////////////////////////////////
//表鼠标双击事件处理
blankRoomTable.addMouseListener(new java.awt.event.MouseAdapter(){
public void mousePressed(MouseEvent e) {
if(e.getSource()==blankRoomTable)
{
if(e.getClickCount()==2) //鼠标双击
{
System.out.println("鼠标双击事件处理");
addRoomToChoosenList_doubleClick(e);
blankRoomTable.setFocusable(false);
}
}
}
});
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getOtherInfoPanel(), null);
jContentPane.add(getBlankRoomListPanel(), null);
jContentPane.add(getChoosenRoomListPanel(), null);
}
return jContentPane;
}
/**
* This method initializes nameTextField
*
* @return javax.swing.JTextField
*/
private JTextField getNameTextField() {
if (nameTextField == null) {
nameTextField = new JTextField();
nameTextField.setBounds(new java.awt.Rectangle(80,8,83,22));
}
return nameTextField;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getEntourageNumTextField() {
if (entourageNumTextField == null) {
entourageNumTextField = new JTextField();
entourageNumTextField.setBounds(new java.awt.Rectangle(80,38,83,22));
}
return entourageNumTextField;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getArrivalDateTextField() {
if (arrivalDateTextField == null) {
arrivalDateTextField = new JTextField();
arrivalDateTextField.setBounds(new java.awt.Rectangle(80,68,83,22));
}
return arrivalDateTextField;
}
/**
* This method initializes OKButton
*
* @return javax.swing.JButton
*/
private JButton getOKButton() {
if (OKButton == null) {
OKButton = new JButton();
OKButton.setText("确定");
OKButton.setBounds(new java.awt.Rectangle(197,11,64,22));
OKButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
newReserveInfo();
}
});
}
return OKButton;
}
/**
* This method initializes exitButton
*
* @return javax.swing.JButton
*/
private JButton getExitButton() {
if (exitButton == null) {
exitButton = new JButton();
exitButton.setText("返回");
exitButton.setBounds(new java.awt.Rectangle(196,73,67,18));
}
return exitButton;
}
/**
* This method initializes OtherInfoPanel
*
* @return javax.swing.JPanel
*/
private JPanel getOtherInfoPanel() {
if (OtherInfoPanel == null) {
arrivalDateLabel = new JLabel();
arrivalDateLabel.setBounds(new java.awt.Rectangle(14,69,57,18));
arrivalDateLabel.setText("预到日期");
entourageNumLabel = new JLabel();
entourageNumLabel.setBounds(new java.awt.Rectangle(45,40,26,18));
entourageNumLabel.setText("人数");
nameLabel = new JLabel();
nameLabel.setBounds(new java.awt.Rectangle(45,11,26,18));
nameLabel.setText("姓名");
OtherInfoPanel = new JPanel();
OtherInfoPanel.setLayout(null);
OtherInfoPanel.setBounds(new java.awt.Rectangle(7,165,290,100));
OtherInfoPanel.setBackground(java.awt.Color.pink);
OtherInfoPanel.add(getOKButton(), null);
OtherInfoPanel.add(getExitButton(), null);
OtherInfoPanel.add(getNameTextField(), null);
OtherInfoPanel.add(getArrivalDateTextField(), null);
OtherInfoPanel.add(getEntourageNumTextField(), null);
OtherInfoPanel.add(nameLabel, null);
OtherInfoPanel.add(entourageNumLabel, null);
OtherInfoPanel.add(arrivalDateLabel, null);
OtherInfoPanel.add(getRemoveRoomButton(), null);
OtherInfoPanel.add(arrivalDateLabel, null);
}
return OtherInfoPanel;
}
/**
* This method initializes blankRoomListPanel
*
* @return javax.swing.JPanel
*/
private JPanel getBlankRoomListPanel() {
if (blankRoomListPanel == null) {
blankHintLabel = new JLabel();
blankHintLabel.setText("可以选择的房间");
blankRoomListPanel = new JPanel();
blankRoomListPanel.setBounds(new java.awt.Rectangle(9,9,163,148));
blankRoomListPanel.setBackground(java.awt.Color.pink);
blankRoomListPanel.add(blankHintLabel, null);
}
return blankRoomListPanel;
}
/**
* This method initializes choosenRoomListPanel
*
* @return javax.swing.JPanel
*/
private JPanel getChoosenRoomListPanel() {
if (choosenRoomListPanel == null) {
choosenHintLabel = new JLabel();
choosenHintLabel.setText("已经选择的房间");
choosenRoomListPanel = new JPanel();
choosenRoomListPanel.setBounds(new java.awt.Rectangle(180,12,110,144));
choosenRoomListPanel.setBackground(java.awt.Color.pink);
choosenRoomListPanel.add(choosenHintLabel, null);
}
return choosenRoomListPanel;
}
////////////////////////////////////////////////////////////
void addRoomToChoosenList_doubleClick(MouseEvent e) {
int index = blankRoomTable.getSelectedRow();
System.out.println("你选择了数组的位置为" + index);
//如果没有选中元素,则不作处理
if (index == -1)
return;
Room room = new Room();
room = (Room) blankRoomList.get(index);
//检查列表,如果已经加入进去了,就不再加,否则,就要
//将房间信息表放到ChoosenRoomListTable中
if (haveChoosenRoomList.size() > 0) {
int i = 0;
do {
Room roomtemp = new Room();
roomtemp = (Room) haveChoosenRoomList.get(i);
//找到已经加入了
if (room.id.equals(roomtemp.id))
return;
i++;
} while (i < haveChoosenRoomList.size());
}
haveChoosenRoomList.addElement(room);
choosenRoomModel.addRow(new Object[] {
room.id.toString().trim(),
room.roomClass.toString().trim() });
}
private void newReserveInfo(){
//保存预订信息.退出该界
// 保存预订信息到reserveRoom.reserveInfo中
// 处理非法输入
try {// Integer.parseInt(string)然后catch
// NumberFormatException,
// 如果没有触发Exception,那就是数字了
int checkNumIsInt = Integer.parseInt(entourageNumTextField
.getText().toString().trim());
reserveRoom.reserveInfo.reserveGuest.entourageNum=checkNumIsInt;
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, "输入错误,请重新输入!",
"ok", JOptionPane.ERROR_MESSAGE);
return;
}
// 判断名字不能含有数字
String name = nameTextField.getText().toString().trim();
if (name.trim().equals("")) {
JOptionPane.showMessageDialog(null, "名字不能为空!", "ok",
JOptionPane.ERROR_MESSAGE);
return;
}
// 处理没有预定房间
if (haveChoosenRoomList.size() == 0) {
JOptionPane.showMessageDialog(null, "没有预定房间", "ok",
JOptionPane.ERROR_MESSAGE);
return;
}
reserveRoom.reserveInfo.reserveGuest.name=name;
reserveRoom.reserveInfo.reserveGuest.ArrivalDate=arrivalDateTextField
.getText().toString().trim();
//String staffId="S1"; //暂时不处理, 取guest的默认值
reserveRoom.reserveInfo.roomList=haveChoosenRoomList;
reserveRoom.newReserveInfo();
reserveRoom.reserveInfo.printReservationInfo();
dispose();
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getRemoveRoomButton() {
if (removeRoomButton == null) {
removeRoomButton = new JButton();
removeRoomButton.setBounds(new java.awt.Rectangle(201,47,60,28));
removeRoomButton.setText("取消");
removeRoomButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
removeRoomfromChoosenList();
}
});
}
return removeRoomButton;
}
private void removeRoomfromChoosenList() {
int index = choosenRoomTable.getSelectedRow();
// 如果没有选中元素,则不作处理
if (index == -1)
return;
///////////////////////////////////////
choosenRoomModel.removeRow(index);
haveChoosenRoomList.remove(index);
}
} // @jve:decl-index=0:visual-constraint="10,10"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -