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

📄 returnroomframe.java

📁 Java语言编写的员工信息管理系统
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import javax.swing.table.*;
import java.util.Vector;
import java.text.*;

public class ReturnRoomFrame extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JPanel checkInInfoPanelPanel = null;
	private JPanel otherInfoPanelPanel = null;
	private JPanel roomOfGuestPanelPanel = null;
	private JPanel buttonPanel = null;
	private JButton OkButton = null;
	private JButton exitButton = null;
	private JLabel arriveDateLabel = null;
	private JTextField arriveDateTextField = null;
	private JLabel leaveDateLabel = null;
	private JTextField leaveDateTextField = null;
	private JLabel depositLabel = null;
	private JTextField depositTextField = null;
	private JLabel serviceFeeLabel = null;
	private JTextField serviceFeeTextField = null;
	private JLabel roomFeeLabel = null;
	private JTextField roomFeeTextField = null;
	private JLabel hintCheckInInfoLabel = null;
	
	 // 用表格来表示列表
	DefaultTableModel reserveInfoModel = new DefaultTableModel();

	JTable reserveInfoTable = new JTable(reserveInfoModel);	
	Vector reserveInfoList=new Vector();

	DefaultTableModel choosenRoomModel = new DefaultTableModel();
	JTable choosenRoomTable = new JTable(choosenRoomModel);
	
	EnrolRoom enrolRoom=new EnrolRoom();
	
	/**
	 * This is the default constructor
	 */
	public ReturnRoomFrame() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(407, 333);
		this.setName("ReturnRoomFrame");
		this.setContentPane(getJContentPane());
		this.setTitle("退房");
/////////////////////////////////////////////    	
	    reserveInfoModel.addColumn("预订号");
	    reserveInfoModel.addColumn("姓名");
	    reserveInfoModel.addColumn("电话"); 
	    reserveInfoModel.addColumn("人数"); 
	       			
	    reserveInfoTable.setPreferredScrollableViewportSize(new Dimension(150, 150));
	    reserveInfoTable.setBackground(new Color(255, 255, 210));    
	    reserveInfoTable.setRowHeight(20);
	    reserveInfoTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
	    JScrollPane reserveInfoscrollpane = new JScrollPane(reserveInfoTable);
	    checkInInfoPanelPanel.add(reserveInfoscrollpane); 

//	  ////////////////////////////////////////// /
	    JScrollPane choosentablescrollpane = new JScrollPane(choosenRoomTable);
	    roomOfGuestPanelPanel.add(choosentablescrollpane);	    
		
		choosenRoomModel.addColumn("房号");
		choosenRoomModel.addColumn("价格");
		choosenRoomTable.setPreferredScrollableViewportSize(new Dimension(100,
				130));
		choosenRoomTable.setBackground(new Color(255, 255, 210));
		choosenRoomTable.setRowHeight(20);
		choosenRoomTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
	    /////////////////////////////////////////////		
		//从modifyReservation获取的信息: 登记客人信息,也就是有押金的预定客人信息
	    
		Enrol enrolInfo = new Enrol();			
		reserveInfoList = enrolRoom.getEnrolInfoList();	
		//将登记客人信息放到Table中
	    for(int i=0;i<reserveInfoList.size();i++)
		{
			enrolInfo=(Enrol)reserveInfoList.get(i);
			
			reserveInfoModel.addRow(new Object[]{ 
							Integer.toString(enrolInfo.enrolGuest.id),
							enrolInfo.enrolGuest.name.toString().trim(),
							enrolInfo.enrolGuest.phone.toString().trim(),							
							Integer.toString(enrolInfo.enrolGuest.entourageNum)		
					 		});	
		}	
	    
	    reserveInfoTable.addMouseListener(new java.awt.event.MouseAdapter(){
	    	public void mousePressed(MouseEvent e) {
	        	if(e.getSource()==reserveInfoTable)
	  	 		{  
	  	 			if(e.getClickCount()==1)		//鼠标单击
	  	 			{	  	 				
	  	 				showOtherCheckInInfo_TableClick();
	  	      		}	
	  	 		}
	      	}
	    });	
	    
	    //将当前日期记录成字符串格式,以便存到数据库,到时候,又可以转化回来成为日期对象
	    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date d = new Date();
		String	s = sdf.format(d)+"";					
		leaveDateTextField.setText(s);
		
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getCheckInInfoPanelPanel(), null);
			jContentPane.add(getOtherInfoPanelPanel(), null);
			jContentPane.add(getRoomOfGuestPanelPanel(), null);
			jContentPane.add(getButtonPanel(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes checkInInfoPanelPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getCheckInInfoPanelPanel() {
		if (checkInInfoPanelPanel == null) {
			hintCheckInInfoLabel = new JLabel();
			hintCheckInInfoLabel.setText("入住信息");
			checkInInfoPanelPanel = new JPanel();
			checkInInfoPanelPanel.setBounds(new java.awt.Rectangle(11,11,181,277));
			checkInInfoPanelPanel.setBackground(new java.awt.Color(204,204,204));
			checkInInfoPanelPanel.add(hintCheckInInfoLabel, null);
		}
		return checkInInfoPanelPanel;
	}

	/**
	 * This method initializes oOtherInfoPanelPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getOtherInfoPanelPanel() {
		if (otherInfoPanelPanel == null) {
			roomFeeLabel = new JLabel();
			roomFeeLabel.setBounds(new java.awt.Rectangle(18,138,52,18));
			roomFeeLabel.setText("住房费用");
			serviceFeeLabel = new JLabel();
			serviceFeeLabel.setBounds(new java.awt.Rectangle(18,108,52,18));
			serviceFeeLabel.setText("服务费用");
			depositLabel = new JLabel();
			depositLabel.setBounds(new java.awt.Rectangle(18,76,52,18));
			depositLabel.setText("已收押金");
			leaveDateLabel = new JLabel();
			leaveDateLabel.setBounds(new java.awt.Rectangle(18,43,52,18));
			leaveDateLabel.setText("离开日期");
			arriveDateLabel = new JLabel();
			arriveDateLabel.setBounds(new java.awt.Rectangle(18,11,52,18));
			arriveDateLabel.setText("到达日期");
			otherInfoPanelPanel = new JPanel();
			otherInfoPanelPanel.setLayout(null);
			otherInfoPanelPanel.setBounds(new java.awt.Rectangle(204,12,186,165));
			otherInfoPanelPanel.setBackground(new java.awt.Color(204,204,204));
			otherInfoPanelPanel.add(arriveDateLabel, null);
			otherInfoPanelPanel.add(getArriveDateTextField(), null);
			otherInfoPanelPanel.add(leaveDateLabel, null);
			otherInfoPanelPanel.add(getLeaveDateTextField(), null);
			otherInfoPanelPanel.add(depositLabel, null);
			otherInfoPanelPanel.add(getDepositTextField(), null);
			otherInfoPanelPanel.add(serviceFeeLabel, null);
			otherInfoPanelPanel.add(getServiceFeeTextField(), null);
			otherInfoPanelPanel.add(roomFeeLabel, null);
			otherInfoPanelPanel.add(getRoomFeeTextField1(), null);
		}
		return otherInfoPanelPanel;
	}

	/**
	 * This method initializes roomOfGuestPanelPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getRoomOfGuestPanelPanel() {
		if (roomOfGuestPanelPanel == null) {
			roomOfGuestPanelPanel = new JPanel();
			roomOfGuestPanelPanel.setBounds(new java.awt.Rectangle(203,183,111,105));
			roomOfGuestPanelPanel.setBackground(new java.awt.Color(204,204,204));
		}
		return roomOfGuestPanelPanel;
	}

	/**
	 * This method initializes buttonPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getButtonPanel() {
		if (buttonPanel == null) {
			buttonPanel = new JPanel();
			buttonPanel.setLayout(null);
			buttonPanel.setBounds(new java.awt.Rectangle(323,183,67,103));
			buttonPanel.setBackground(new java.awt.Color(204,204,204));
			buttonPanel.add(getOkButton(), null);
			buttonPanel.add(getExitButton(), null);
		}
		return buttonPanel;
	}

	/**
	 * This method initializes OkButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getOkButton() {
		if (OkButton == null) {
			OkButton = new JButton();
			OkButton.setBounds(new java.awt.Rectangle(4,24,63,20));
			OkButton.setText("确定");
			OkButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					returnRoom();				
				}
			});
		}
		return OkButton;
	}

	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getExitButton() {
		if (exitButton == null) {
			exitButton = new JButton();
			exitButton.setBounds(new java.awt.Rectangle(4,68,60,19));
			exitButton.setText("返回");
			exitButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					dispose();
				}
			});
		}
		return exitButton;
	}

	/**
	 * This method initializes arriveDateTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getArriveDateTextField() {
		if (arriveDateTextField == null) {
			arriveDateTextField = new JTextField();
			arriveDateTextField.setBounds(new java.awt.Rectangle(85,12,79,17));
		}
		return arriveDateTextField;
	}

	/**
	 * This method initializes jTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getLeaveDateTextField() {
		if (leaveDateTextField == null) {
			leaveDateTextField = new JTextField();
			leaveDateTextField.setBounds(new java.awt.Rectangle(85,44,79,17));
		}
		return leaveDateTextField;
	}

	/**
	 * This method initializes jTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getDepositTextField() {
		if (depositTextField == null) {
			depositTextField = new JTextField();
			depositTextField.setBounds(new java.awt.Rectangle(85,77,79,17));
		}
		return depositTextField;
	}

	/**
	 * This method initializes jTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getServiceFeeTextField() {
		if (serviceFeeTextField == null) {
			serviceFeeTextField = new JTextField();
			serviceFeeTextField.setBounds(new java.awt.Rectangle(85,110,79,17));
		}
		return serviceFeeTextField;
	}

	/**
	 * This method initializes jTextField1	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getRoomFeeTextField1() {
		if (roomFeeTextField == null) {
			roomFeeTextField = new JTextField();
			roomFeeTextField.setBounds(new java.awt.Rectangle(85,139,79,17));
		}
		return roomFeeTextField;
	}
	void showOtherCheckInInfo_TableClick(){
		 int index = reserveInfoTable.getSelectedRow();	  	 
	  	 //如果没有选中元素,则不作处理 
	  	 if(index == -1) 
	  	 	return ; 	 
	  	 //只要表中还又元素,就删除表头的,一直删除到尾~~~
	  	 //就想删除链表一样!!!!!!
	  	 while(choosenRoomModel.getRowCount()!=0){
	  		choosenRoomModel.removeRow(0);
	  	 }
		 
	  	 Room room=new Room();  	 
	  	 Enrol enrol=new Enrol();
	  	 
	  	 enrol=(Enrol)reserveInfoList.get(index);
	  	 Vector roomList=new Vector();
	  	 roomList=enrol.roomList;
	  	 //计算总费用
	  	 
	  	 ////////////////////////////////////
	  	 arriveDateTextField.setText(enrol.enrolGuest.ArrivalDate.trim());	  		
	  	 ////////////////////////////////////
	  	 int totalRoomPrice=0;
	  	 long daynum=computeActualStayNum();
	  	 double totalFee=0;  
	  	 
	  	 //添加所选择的房间列表,并计算总价格
	  	 for(int j=0;j<roomList.size();j++){
	  	 	room = (Room)roomList.get(j);
	  	 	
	  	 	choosenRoomModel.addRow(new Object[]{ 
	  	 			room.id,
	  	 			room.fee+""
					 		});	
			totalRoomPrice = room.fee+totalRoomPrice;	 	
	  	 }
	  	 
	  	 System.out.println("totalRoomPrice: "+totalRoomPrice);
	  	 System.out.println("daynum: "+daynum);	  	 
	  	 totalFee=totalRoomPrice*daynum;	//计算公式
	  	 
	  	 roomFeeTextField.setText(""+totalFee);
	  	 serviceFeeTextField.setText(""+enrol.enrolGuest.ServiceExpenses);
	  	 
	  	 depositTextField.setText(""+enrol.enrolGuest.desposit);
	}
		//	计算实际 入住的天数
	  long computeActualStayNum(){
	  	 //将字符串转换成日期对象
	  	 SimpleDateFormat bartDateFormat = new SimpleDateFormat("yyyy-MM-dd");		
	     // Create a string containing a text date to be parsed.
	     String dateStringToParse = leaveDateTextField.getText().toString().trim();
	     String dateStringToParse2= arriveDateTextField.getText().toString().trim();
	     long diffMillis=0;
	     long diffDays=0;
	     try {
	         Date date = bartDateFormat.parse(dateStringToParse);	        
	    	 Date date2 = bartDateFormat.parse(dateStringToParse2);  
	         diffMillis = date.getTime()- date2.getTime();	         
	         diffDays = diffMillis/(24*60*60*1000); 
	         System.out.println("相差天数:"+diffDays);        
	             
	     }catch (Exception ex) {
	    	 System.out.println(ex.getMessage());
	     }
	     return diffDays;
	  }
	  ///////////////////////////////////////////
	  private void returnRoom(){
		  
			//退房,保存退房信息
		  	 int index = reserveInfoTable.getSelectedRow();
		  	 System.out.println ("退房,保存退房信息");  
		  	 //如果没有选中元素,则不作处理 
		  	 if(index == -1) 
		  	 	return ;  	 		  	 
		  	 Enrol enrol=new Enrol();
		  	 
		  	enrol=(Enrol)reserveInfoList.get(index);
		  	enrol.enrolGuest.RoomExpenses=(int)
		  		Double.parseDouble(roomFeeTextField.getText().trim());
		  	
		  	String tradeDate = leaveDateTextField.getText().toString().trim();
		  	enrol.enrolGuest.CheckOutDate=tradeDate;
		  	
//		  确认付款对话框
	  	 	String totalFee = "总费用: "+Integer.toString(enrol.enrolGuest.RoomExpenses
	  	 		+enrol.enrolGuest.ServiceExpenses)+"";
	  	 	
	     	int answer = JOptionPane.showConfirmDialog(this,totalFee,"确认结帐",2);
	     	if(answer == JOptionPane.YES_OPTION)
	     	{	     	
	     		enrolRoom.saveReturnRoomInfo(enrol);
	     		dispose();
	     	}  		
	     	

		  	
	  }
}  //  @jve:decl-index=0:visual-constraint="10,10"

⌨️ 快捷键说明

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