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

📄 hotelmanagerframe.java

📁 java酒店管理系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package myprojects.hotelmanager;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.table.AbstractTableModel;
import java.util.*;
import javax.swing.table.*;
import java.util.Vector;
import java.util.*;
import java.text.*;

//-----------------导入自定义的包---------------------------
//导入事务处理接口包
import myprojects.transactionController.TransactionController;
import myprojects.checkin.*;
import myprojects.Account.*;
import myprojects.guestroom.*;
import myprojects.hotelmanager.*;
import myprojects.aboutdialog.*;
/**
 * @(#)HotelManagerFrame.java
 *
 * 主界面,处理所有的功能
 * 通过TranctionController,控制器模式
 * 处理各项事务
 *
 * @author 
 * @version 1.00 05/12/25
 */
public class HotelManagerFrame extends JFrame {
	
	TransactionController transactionInterface; //处理主界面&事务模块的接口
    Account usingSystemAccount = new Account();
    //用表格来表示房间列表
  	DefaultTableModel roomModel = new DefaultTableModel();
  	JTable roomTable = new JTable(roomModel);
  	//存放某个房间住的客人,所登记的所有房间列表
  	DefaultTableModel choosenRoomModel = new DefaultTableModel();
  	JTable choosenRoomTable = new JTable(choosenRoomModel);
  	//////////////////////////////////////////////
  	HotelManager hotelManager=new HotelManager();
  	Vector allRoomList = new Vector(); 
  	Vector roomListInTable=new Vector() ;
  	//获取登记客人的信息
  	Vector checkInInfoList=new Vector();      
    /**
     * The constructor.
     */  
     public HotelManagerFrame(Account usa) {
     	
     	usingSystemAccount =usa;      
     	//usingSystemAccount.printAccountInfo();
     	// 初始化所有模块
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		HotelManagerFrameMenu menuBar = new HotelManagerFrameMenu();
		
		
		transactionInterface = new TransactionController(usingSystemAccount);
        // 设置主框架的布局
		Container c = this.getContentPane();
	    c.setLayout(new BorderLayout());
	    
	    ///////////////////////////////////////////////////
	    CenterPanel centerPanel = new CenterPanel();
	    LeftPanel leftPanel = new LeftPanel();
		RightPanel rightPanel = new RightPanel();
		BottomPanel bottomPanel = new BottomPanel();				
		c.add(leftPanel,BorderLayout.WEST);
		c.add(rightPanel,BorderLayout.EAST);
		c.add(centerPanel,BorderLayout.CENTER);
		c.add(bottomPanel,BorderLayout.SOUTH);	
	    /////////////////////////////////////////////////////
	    //设置工具栏
		JToolBar ToolBar = new JToolBar();										
  		JButton checkInToolBarButton = new JButton();
  		JButton reserveToolBarButton = new JButton();
  		JButton returnRoomButton = new JButton();
  		ImageIcon CheckInToolBarImage=createImageIcon(".\\images\\CheckInToolBarIcon1.gif");;
  		ImageIcon reserveToolBarImage=createImageIcon(".\\images\\reserveRoomToolBarIcon1.gif");;
  		ImageIcon returnRoomToolBarImage=createImageIcon(".\\images\\returnRoomToolBarIcon1.gif");;
		
		checkInToolBarButton.setIcon(CheckInToolBarImage);
		checkInToolBarButton.setToolTipText("登记");
    	reserveToolBarButton.setIcon(reserveToolBarImage);
    	reserveToolBarButton.setToolTipText("预定");
    	returnRoomButton.setIcon(returnRoomToolBarImage);
    	returnRoomButton.setToolTipText("退房");
    	ToolBar.add(checkInToolBarButton);
    	ToolBar.add(reserveToolBarButton);
    	ToolBar.add(returnRoomButton);
    	c.add(ToolBar, BorderLayout.NORTH);
    
    	checkInToolBarButton.addMouseListener(new java.awt.event.MouseAdapter() {
     	 	public void mouseClicked(MouseEvent e) {     	 		
      			transactionInterface.checkInInterface();  			 	
      		}
    	}); 
    	reserveToolBarButton.addMouseListener(new java.awt.event.MouseAdapter() {
     	 	public void mouseClicked(MouseEvent e) {     	 		
      			transactionInterface.reserveInterface();  			 	
      		}
    	}); 
    	returnRoomButton.addMouseListener(new java.awt.event.MouseAdapter() {
     	 	public void mouseClicked(MouseEvent e) {     	 		
      			transactionInterface.returnRoomInterface();  			 	
      		}
    	}); 
	    /////////////////////////////////////////////////////
	     //主界面添加菜单
		setJMenuBar(menuBar);
        
        setTitle("HotelManagerSystem");
        setSize(700,500);
        setLocation(200,150);
        // Show frame.
        setVisible(true);
       
        
        // Add window listener.
        this.addWindowListener
        (
            new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    HotelManagerFrame.this.windowClosed();
                }
            }
        );  
    }
    
    class LeftPanel extends JPanel
	{
		final private int delay = 1000;	//一秒钟变化一下
		private String s = "     "+"00:00:00"+"     ";		
		private JLabel clockLabel;	//显示时间
		int roomKindMark=0;  //mark which the radio button is selected
		////////////////////////////////////////////////
		JLabel hintRoomKindLabel = new JLabel("房间种类:");		
		ButtonGroup groupRadioB = new ButtonGroup();		
		JRadioButton allRoomRadioButton = new JRadioButton("所有房间");		//所有房间
  		JRadioButton singleRadioButton = new JRadioButton("单人房");		//单人房
  		JRadioButton doubleRoomRadioButton = new JRadioButton("双人房");	//双人房
  		JRadioButton standarRoomRadioButton = new JRadioButton("标间");		//标间
  		JRadioButton suiteRoomRadioButton = new JRadioButton("套房");		//套房  
  		////////////////////////////////////////////////
		public LeftPanel()
		{
			///////////////////////////////////////
			groupRadioB.add(allRoomRadioButton);
  			groupRadioB.add(singleRadioButton); 
  			groupRadioB.add(doubleRoomRadioButton);
  			groupRadioB.add(standarRoomRadioButton); 
  			groupRadioB.add(suiteRoomRadioButton);
  			allRoomRadioButton.setSelected(true);
			///////////////////////////////////////
			setRoomList("所有房间");
			///////////////////////////////////////
			setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
			clockLabel = new JLabel(s);	
			LineBorder lineBorder = (LineBorder)BorderFactory.createLineBorder(Color.BLUE);
			clockLabel.setBorder(lineBorder);			
			//启动计时器		
			new javax.swing.Timer(delay,new ActionListener()
			{	
				public void actionPerformed(ActionEvent ee)
				{
					SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
					Date d = new Date();
					s = "     "+sdf.format(d)+"     ";					
					clockLabel.setText(s);
			
				}
			}).start();
			///////////////////////////////
			
			add(hintRoomKindLabel);
			add(Box.createRigidArea(new Dimension(0,10)));	//增加空白
			add(allRoomRadioButton);
			add(Box.createRigidArea(new Dimension(0,10)));	//增加空白
			add(singleRadioButton);
			add(Box.createRigidArea(new Dimension(0,10)));	//增加空白
			add(doubleRoomRadioButton);
			add(Box.createRigidArea(new Dimension(0,10)));	//增加空白
			add(standarRoomRadioButton);
			add(Box.createRigidArea(new Dimension(0,10)));	//增加空白
			add(suiteRoomRadioButton);	 	
			//////////////////////////////////////////	
	 		add(Box.createRigidArea(new Dimension(0,40)));
	 	 	
	 	 	JButton updateCheckInInfoButton= new JButton("更新");//更新客人入住信息	
	 	 	ImageIcon updateButtonIcon = createImageIcon(".\\images\\updateIcon.gif");		
	 		updateCheckInInfoButton.setIcon(updateButtonIcon);
	 		add(updateCheckInInfoButton);
	 		add(Box.createRigidArea(new Dimension(0,35)));					
			add(clockLabel);
	 		//增加一些常用按钮,登记,预定,退房
	 		this.setBorder(new EtchedBorder(EtchedBorder.LOWERED,Color.LIGHT_GRAY,Color.blue));	 		
			
			EmptyBorder emptyBorder = (EmptyBorder)BorderFactory.createEmptyBorder(10,15,10,10);
    
			setBorder(emptyBorder);	
			
			updateCheckInInfoButton.addMouseListener(new java.awt.event.MouseAdapter() {
     	 		public void mouseClicked(MouseEvent e) {
     	 			if(roomKindMark==0){
						return;
					}     	 
     	 			setRoomList("所有房间");     	
     	 			roomKindMark=0;		 	
      			 	System.out.println ("roomKindMark = "+roomKindMark);  	 		 			 	
      			}
    		}); 			
			allRoomRadioButton.addMouseListener(new java.awt.event.MouseAdapter() {
     	 		public void mouseClicked(MouseEvent e) {
     	 			if(roomKindMark==0){
						return;
					}     	 
     	 			setRoomList("所有房间");     	
     	 			roomKindMark=0;		 	
      			 	System.out.println ("roomKindMark = "+roomKindMark);      			 	
      			}
    		}); 
    		singleRadioButton.addMouseListener(new java.awt.event.MouseAdapter() {
     	 		public void mouseClicked(MouseEvent e) {
     	 			//设置一个标志,先判断一下,是不是该情况下的显示房间
					//如果不是,则:首先清空房间列表,再从allRoomList跳出满足
					//条件的房间显示出来就可以了
					//增加一个格子布局的面板,来显示客人个人信息,(如果该房间状态为入住的话)
					//在对应的显示客人定的所有房间状态
					//如果没有人入住,则对应的客人信息清空显示
					//注意清空表格类似于清空链表,或者队列,总是删除第一个,知道表格大小为0位置
     	 			if(roomKindMark==1){
     	 				//judge the room list is showing the singleRoom or not
     	 				//if that ,return 
						return;
					}     			 	
      			 	//处理单选按钮事件,该处为显示单人间
      			 	setRoomList("单人房");	;
      			 	roomKindMark=1;
      			 	System.out.println ("roomKindMark = "+roomKindMark);
      			}
    		}); 
    		doubleRoomRadioButton.addMouseListener(new java.awt.event.MouseAdapter() {
     	 		public void mouseClicked(MouseEvent e) { 
     	 			if(roomKindMark==2){
						return;
					}     			 	
      			 	//处理单选按钮事件,该处为显示单人间
      			 	setRoomList("双人房");
     	 			roomKindMark=2;   			 	
      			 	System.out.println ("roomKindMark = "+roomKindMark);
      			}
    		}); 
    		standarRoomRadioButton.addMouseListener(new java.awt.event.MouseAdapter() {
     	 		public void mouseClicked(MouseEvent e) {
     	 			
     	 			if(roomKindMark==3){
						return;
					}     			 	
      			 	//处理单选按钮事件,该处为显示单人间
      			 	setRoomList("标间");	;  
     	 			roomKindMark=3;   			 	
      			 	System.out.println ("roomKindMark = "+roomKindMark);
      			}
    		});   
    		suiteRoomRadioButton.addMouseListener(new java.awt.event.MouseAdapter() {
     	 		public void mouseClicked(MouseEvent e) {
     	 			if(roomKindMark==4){
						return;
					}     			 	
      			 	//处理单选按钮事件,该处为显示单人间
      			 	setRoomList("套房");	 
     	 			roomKindMark=4;   			 	
      			 	System.out.println ("roomKindMark = "+roomKindMark);
      			}
    		});  
			//////////////////////////////////////////////////////
		}
		void setRoomList(String kind){
			//就想删除链表一样!!!!!!
			//clear up the roomtable ,then, show the single room list
  	 		while(roomModel.getRowCount()!=0){
  	 			roomModel.removeRow(0);
  	 		}
  	 		roomListInTable.removeAllElements();
  	 		//获得房间状态信息,同步更新
  	 		allRoomList = hotelManager.getAllRoomList();

⌨️ 快捷键说明

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