📄 undoreserveframe.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 myprojects.reserve.*;
import myprojects.guestroom.*;
/**
* @(#)ReserveInfo.java
*
* 取消预订信息:
* 删除预订个人信息,其房间状态信息也随之删除
*
* @author
* @version 1.00 05/12/25
*/
public class UndoReserveFrame extends JFrame {
JPanel contentPane;
JPanel reservePersonInfoPanel = new JPanel();
JLabel hintReserveInfoLabel = new JLabel();
JPanel buttonPanel = new JPanel();
JButton deleteButton = new JButton();
JButton affrimButton = new JButton();
JButton exitButton = new JButton();
//用表格来表示列表
DefaultTableModel reserveInfoModel = new DefaultTableModel();
JTable reserveInfoTable = new JTable(reserveInfoModel);
//生成取消预订信息类,
UndoReserve undoReserveRoom = new UndoReserve();
Vector reserveInfoList=new Vector();
//保存删除的预订号码
Vector deleteReserveId=new Vector();
Vector deleteRoomId=new Vector();
//Construct the frame
public UndoReserveFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(null);
this.setSize(new Dimension(400, 350));
this.setLocation(290,250);
this.setTitle("取消预订");
this.setResizable(false); //使之不能改变大小
contentPane.setForeground(Color.black);
reservePersonInfoPanel.setBackground(Color.lightGray);
reservePersonInfoPanel.setBounds(new Rectangle(24, 14, 345, 202));
BorderLayout border = new BorderLayout();
reservePersonInfoPanel.setLayout(border);
hintReserveInfoLabel.setText(" 预订信息个人表");
buttonPanel.setBackground(Color.lightGray);
buttonPanel.setBounds(new Rectangle(24, 226, 347, 54));
buttonPanel.setLayout(null);
deleteButton.setBounds(new Rectangle(151-100, 16, 73, 25));
deleteButton.setText("删除");
affrimButton.setBounds(new Rectangle(151, 16, 73, 25));
affrimButton.setText("确定");
exitButton.setBounds(new Rectangle(245, 16, 73, 25));
exitButton.setText("退出");
contentPane.add(reservePersonInfoPanel, null);
reservePersonInfoPanel.add(hintReserveInfoLabel,BorderLayout.NORTH);
contentPane.add(buttonPanel, null);
buttonPanel.add(deleteButton, null);
buttonPanel.add(affrimButton, null);
buttonPanel.add(exitButton, null);
/////////////////////////////////////////////
reserveInfoModel.addColumn("预订号");
reserveInfoModel.addColumn("姓名");
reserveInfoModel.addColumn("电话");
reserveInfoModel.addColumn("应到日期");
reserveInfoTable.setPreferredScrollableViewportSize(new Dimension(130, 100));
reserveInfoTable.setBackground(new Color(255, 255, 210));
reserveInfoTable.setRowHeight(20);
reserveInfoTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane reserveInfoscrollpane = new JScrollPane(reserveInfoTable);
reservePersonInfoPanel.add(reserveInfoscrollpane,BorderLayout.CENTER);
///////////////
affrimButton.setEnabled(false);
/////////////////////////////////////////////
//从 UndoReserve 类型对象获取预订客人信息
//设置从 UndoReserve 类对象获取的信息: 预订客人信息
//undoReserveRoom.reserveInfoList放的是预订客人信息表
ReserveInfo reserveInfo = new ReserveInfo();
reserveInfoList = undoReserveRoom.reserveInfoList;
//将预订客人信息表放到Table中
for(int i=0;i<reserveInfoList.size();i++)
{
reserveInfo=(ReserveInfo)reserveInfoList.get(i);
reserveInfoModel.addRow(new Object[]{
Integer.toString(reserveInfo.guestId),
reserveInfo.guestName.toString().trim(),
reserveInfo.guestPhone.toString().trim(),
reserveInfo.arriveDate.toString().trim(),
Integer.toString(reserveInfo.guestNum)
});
}
////////////////////////////////////
this.setVisible(true);
//按钮事件处理
//处理删除预订记录,但是不保存,如果按了保存按钮,则将删除信息保存
deleteButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("处理删除预订记录");
deleteReserveRecord_deleteButtonClick();
}
});
exitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//退出该界面,不保存预订信息
System.out.println("退出取消预订界面");
closeFrame();
}
});
affrimButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveUndoReserveInfo_affrimButtonClick();
closeFrame();
}
});
}/////////////////// jbInit end
//打印删除客人的标志号
void printdeleteReserveId(){
System.out.println("删除客人的标志号:");
for(int i=0;i<deleteReserveId.size();i++) {
System.out.println(deleteReserveId.get(i)+" ");
}
}
//将删除的标志号存放到数组 deleteReserveId 中,以便通知数据库,删除相应记录
void deleteReserveRecord_deleteButtonClick(){
//处理删除预订记录,但是不保存,如果按了保存按钮,则将删除信息保存
int index = reserveInfoTable.getSelectedRow();
System.out.println ("你选择了数组的位置为"+index);
//如果没有选中元素,则不作处理
if(index == -1)
return ;
ReserveInfo reserveInfo = new ReserveInfo();
reserveInfo=(ReserveInfo)reserveInfoList.get(index);
//存放删除预订客人标号到 deleteReserveId
deleteReserveId.addElement(reserveInfo.getGuestId()+"");
for(int i=0;i<reserveInfo.choosenRoomList.size();i++){
GuestRoom gr=new GuestRoom();
gr=(GuestRoom)reserveInfo.choosenRoomList.get(i);
deleteRoomId.add(gr.guestRoomId);
}
//从列表中删除该客人信息
reserveInfoModel.removeRow(index);
reserveInfoList.remove(index);
affrimButton.setEnabled(true);
}
void saveUndoReserveInfo_affrimButtonClick() {
this.printdeleteReserveId();
undoReserveRoom.saveUndoReserveInfo(deleteReserveId,deleteRoomId);
}
//close this frame when window is closed
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 + -