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

📄 reserveroomframe.java

📁 java酒店管理系统
💻 JAVA
字号:
package myprojects.reserve; 	//预订&取消预订放在一个包中

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.event.*;
import java.util.*;
import javax.swing.table.*;
import java.io.*;
import java.util.Vector;
import java.util.*;
import java.text.*;
//-----------------导入自定义的包---------------------------
//导入预订房间处理包
import myprojects.reserve.*;
import myprojects.guestroom.*;

/**
 * @(#)ReserveRoomFrame.java
 *
 * 预订房间界面
 *  
 *
 * @author 
 * @version 1.00 05/12/25
 */
 
public class ReserveRoomFrame extends JFrame {
	
  JPanel reserveRoomcontentPane;
  JLabel guestNameLabel = new JLabel();
  JTextField guestNameText = new JTextField();
  JLabel guestPhoneLabel = new JLabel();
  JTextField guestPhoneText = new JTextField();
  JLabel arriveDateLabel = new JLabel();
  JTextField arriveDateText = new JTextField();
  JLabel guestNumLabel = new JLabel();
  
  JTextField guestNumText = new JTextField();
  JPanel guestInfoPanel = new JPanel();
  JPanel blankRoomListPanel = new JPanel();
  JPanel choosenRoomListPanel = new JPanel();
  JLabel hintBlankRoomListLabel = new JLabel();
  JPanel affrimOrNotButtonPanel = new JPanel();
  JButton removeButton = new JButton();
  JButton affrimButton = new JButton();
  JButton undoButton = new JButton();
  JLabel hintChoosenRoomListLabel = new JLabel();
  FlowLayout blankRoomFlowLayout = new FlowLayout();
  FlowLayout choosenRoomFlowLayout = new FlowLayout();
  //////////////////////////////////////////
  //用表格来表示列表 
  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();
  //Construct the frame
  public ReserveRoomFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    System.out.println("预订房间界面"); 
  }
  //Component initialization
  private void jbInit() throws Exception  {
    reserveRoomcontentPane = (JPanel) this.getContentPane();
    guestNameLabel.setText("联系人");
    guestNameLabel.setBounds(new Rectangle(21, 20, 44, 16));
    reserveRoomcontentPane.setMaximumSize(new Dimension(2147483647, 2147483647));
    reserveRoomcontentPane.setLayout(null);
    this.setSize(400,350);
    this.setLocation(250,200);
    this.setTitle("预订房间");
    this.setResizable(false); //使之不能改变大小
    
    guestNameText.setText("");
    guestNameText.setBounds(new Rectangle(69, 17, 63, 22));
    guestPhoneLabel.setText("联系电话");
    guestPhoneLabel.setBounds(new Rectangle(180, 20, 63, 16));
    guestPhoneText.setText("");
    guestPhoneText.setBounds(new Rectangle(239, 17, 69, 22));
    arriveDateLabel.setText("到达日期");    
    arriveDateLabel.setBounds(new Rectangle(180, 55, 54, 14));
    arriveDateText.setText("");
    arriveDateText.setBounds(new Rectangle(239, 51, 69, 22));
    guestNumLabel.setText("数目");
    guestNumLabel.setBounds(new Rectangle(21, 54, 34, 16));
    guestNumText.setText("");
    guestNumText.setBounds(new Rectangle(69, 51, 63, 22));
    guestInfoPanel.setBounds(new Rectangle(20, 10, 334, 99));
    guestInfoPanel.setLayout(null);
    blankRoomListPanel.setBounds(new Rectangle(22, 123, 140, 180));
    blankRoomListPanel.setLayout(blankRoomFlowLayout);
    choosenRoomListPanel.setBounds(new Rectangle(154, 123, 140, 180));
    choosenRoomListPanel.setLayout(choosenRoomFlowLayout);
    hintBlankRoomListLabel.setText("可以选择的客房");
    affrimOrNotButtonPanel.setBounds(new Rectangle(290, 185-20-10, 75, 95+10));
    affrimOrNotButtonPanel.setLayout(null);
    
    removeButton.setBounds(new Rectangle(9, 5, 61, 24));
    removeButton.setText("取消");
    
    affrimButton.setBounds(new Rectangle(9, 35+5, 61, 24));
    affrimButton.setText("确定");
    
    undoButton.setBounds(new Rectangle(10, 65+10, 60, 25));
    undoButton.setText("返回");
    hintChoosenRoomListLabel.setText("已经选择的客房");
    guestInfoPanel.add(guestNameLabel, null);
    guestInfoPanel.add(guestPhoneLabel, null);
    guestInfoPanel.add(guestPhoneText, null);
    guestInfoPanel.add(arriveDateText, null);
    guestInfoPanel.add(arriveDateLabel, null);
    guestInfoPanel.add(guestNumLabel, null);
    guestInfoPanel.add(guestNameText, null);
    guestInfoPanel.add(guestNumText, null);
    reserveRoomcontentPane.add(guestInfoPanel, null);
    reserveRoomcontentPane.add(blankRoomListPanel, null);
    blankRoomListPanel.add(hintBlankRoomListLabel, null);
    reserveRoomcontentPane.add(affrimOrNotButtonPanel, null);
    affrimOrNotButtonPanel.add(removeButton, null);
    affrimOrNotButtonPanel.add(undoButton, null);
    affrimOrNotButtonPanel.add(affrimButton, null);
    reserveRoomcontentPane.add(choosenRoomListPanel, null);
    choosenRoomListPanel.add(hintChoosenRoomListLabel, null);
        
/////////////////////////////////////////////    	
    blankRoomModel.addColumn("房号");
    blankRoomModel.addColumn("类别");
    blankRoomModel.addColumn("价格");    			
    blankRoomTable.setPreferredScrollableViewportSize(new Dimension(130, 100));
    blankRoomTable.setBackground(new Color(255, 255, 210));
    blankRoomTable.setRowHeight(20);
    blankRoomTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    JScrollPane blanktablescrollpane = new JScrollPane(blankRoomTable);
    blankRoomListPanel.add(blanktablescrollpane);    
/////////////////////////////////////////////    	
    choosenRoomModel.addColumn("房号");
    choosenRoomModel.addColumn("类别");    			
    choosenRoomTable.setPreferredScrollableViewportSize(new Dimension(100, 100));
    choosenRoomTable.setBackground(new Color(255, 255, 210));
    choosenRoomTable.setRowHeight(20);
    choosenRoomTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    JScrollPane choosentablescrollpane = new JScrollPane(choosenRoomTable);
    choosenRoomListPanel.add(choosentablescrollpane);
    //////////////////////////////////////////////////
    //////////////////////////////////////////////////
/*    //将当前日期记录成字符串格式,以便存到数据库,到时候,又可以转化回来成为日期对象
    arriveDateText.setEditable(false);
    SimpleDateFormat simpledf = new SimpleDateFormat("yyyy-MM-dd");
	Date currentDate = new Date();
	String	strCurrentDate = simpledf.format(currentDate)+"";			

		
	arriveDateText.setText(strCurrentDate);
*/
	/////////////////////////////////////////////
	//从ReserveRoom类型对象获取房间状态信息   
	//设置从ReserveRoom类对象获取的信息: 房间状态信息
	//刚开始,reserveRoom.reserveInfo.choosenRoomList放的是空房间信息表
	GuestRoom room=new GuestRoom();
	blankRoomList=new Vector();
	blankRoomList = reserveRoom.reserveInfo.choosenRoomList;	
//将房间信息表放到那个Table中/////////////////////////////////////////////////////
	for(int i=0;i<blankRoomList.size();i++)
	{
		room=(GuestRoom)blankRoomList.get(i);
		
		blankRoomModel.addRow(new Object[]{ room.guestRoomId.toString().trim(),
						room.guestRoomClass.toString().trim(),
						Integer.toString(room.guestRoomFee)	

			
				 		});	
	}//for	
	/////////////////////////////////////////////
	
	this.setVisible(true);
	//按钮事件处理
	undoButton.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
		   //退出该界面,不保存预订信息
		   System.out.println("退出该界面,不保存预订信息");
		   closeFrame();				
		}
	});
	/////////////////////////////////////////////////////////////////	
	removeButton.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
		  	removeRoomfromChoosenList();
		}
	});	
	///////////////////////////////////////////////////////////////////
	affrimButton.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
		   //保存预订信息.退出该界
		   //保存预订信息到reserveRoom.reserveInfo中
//处理非法输入
   			try{//Integer.parseInt(string)然后catch NumberFormatException, 
   				//如果没有触发Exception,那就是数字了
   				int checkNumIsInt=Integer.parseInt(guestNumText.getText().toString().trim()); 
   				reserveRoom.reserveInfo.setGuestNum(checkNumIsInt);
   			}catch(NumberFormatException nfe){
   				JOptionPane.showMessageDialog(null,"输入错误,请重新输入!","ok",
   				JOptionPane.ERROR_MESSAGE);
   				return;   				
   			} 
   		   
//判断名字不能含有数字   		   
   		String name = guestNameText.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.setGuestName(name);
		   reserveRoom.reserveInfo.setGuestPhone(guestPhoneText.getText().toString().trim());
		   reserveRoom.reserveInfo.setArriveDate(arriveDateText.getText().toString().trim());
		   
		   reserveRoom.reserveInfo.setChoosenRoomList(haveChoosenRoomList);	

   
		   reserveRoom.saveReserveInfo();
		   reserveRoom.reserveInfo.printReserveInfo();
		   closeFrame();		   	   				
		}
	});	
	//表鼠标双击事件处理		
    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);
  	      		}
  	      	
  	 		}
      	}
    });	
    		
  
	///////////////////////////////////////////////////////	
  } //end jbInit  
 
  void removeRoomfromChoosenList(){
		
		int index = choosenRoomTable.getSelectedRow();
		System.out.println ("删除选择的房间"); 
  	 	System.out.println ("你选择了数组的位置为"+index);  
  	 	//如果没有选中元素,则不作处理 
  	 	if(index == -1) 
  	 		return ;
		///////////////////////////////////////  	   
  	 	choosenRoomModel.removeRow(index);
  	 	haveChoosenRoomList.remove(index);  	 
  }
  ////////////////////////////////////////////////////////////
  void addRoomToChoosenList_doubleClick(MouseEvent e) {
  	
  		int index = blankRoomTable.getSelectedRow();
  	 	System.out.println ("你选择了数组的位置为"+index);  
  	 	//如果没有选中元素,则不作处理 
  	 	if(index == -1) 
  	 		return ;  	 	
  	    GuestRoom room=new GuestRoom();
  	 	room = (GuestRoom)blankRoomList.get(index);
  	    //检查列表,如果已经加入进去了,就不再加,否则,就要	 
  	    //将房间信息表放到ChoosenRoomListTable中  	    
  	    String roomId="";
  	    System.out.println ("遍历好友数组");
  	    
  	    if(haveChoosenRoomList.size() > 0){  
  	    	int i = 0;  	    	    
  	    	do{  	    		
         		GuestRoom roomtemp=new GuestRoom();
         		roomtemp = (GuestRoom)haveChoosenRoomList.get(i);
         		//找到已经加入了
         		if(room.guestRoomId == roomtemp.guestRoomId)
         			return;
         		i++;
        	}while(i<haveChoosenRoomList.size());  
  	    }         		
  	    
  	    haveChoosenRoomList.addElement(room);
  	      	      	   
		choosenRoomModel.addRow(new Object[]{ 
			room.guestRoomId.toString().trim(),
			room.guestRoomClass.toString().trim()										
		});	
  }
  
  //////////////////////////////////////////////
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      closeFrame();
    }
  }
  void closeFrame() {
  	this.dispose();	
  } 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -