📄 returnroomframe.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 + -