java实现酒店管理系统

本文实例为大家分享了java实现酒店管理系统的具体代码,供大家参考,具体内容如下

编写环境:MyEclipse2014+sql server2014

系统功能:

1.登录验证
2.房态统计显示
3.预定登记并入库
4.入住登记并入库
5.换房登记并入库
6.客人信息查询
7.退房并入库

运行界面如下:

=====登录界面======
=====主界面=====
=====为每个房间设置弹出菜单======
=====登记界面======

=====换房界面=====
=====退房界面=====

界面之间相关关系:

主界面主要由菜单条,按钮,标签等组成,一个JButton是一个房间,其Test从数据库中获取,颜色由房态决定。
登记-换房-查看信息-退房等界面皆继承一个父类而来,简单快捷。

主要代码目录:

1.数据库操作类

 /**====================================================**
 * 项目名 :酒店管理系统
 * 模块名 :数据库连接
 * 文件名 :DataBaseConnct.java
 * 相关文件 :
 * 实现功能 :jdbc连接数据库
 * 函数说明 :
 * [## public Vector getId(){}]:
 * 功能:获取数据库中系统登录ID
 * 
 * [## public void setId() {}]:
 * 功能:设置数据库中系统登录ID
 * 
 * [## public Vector getPassword(){}]:
 * 功能:获取数据库中系统登录密码
 * 
 * [## public void setPassword(){}]:
 * 功能:设置数据库中系统登录密码
 * 
 * [## public Vector getRoonnum(){}]:
 * 功能:获取数据库中房间号
 * 
 * [## public void setRoonnum() {}]:
 * 功能:设置数据库中房间号
 * 
 * [## public Vector getRoomtype(){}]:
 * 功能:获取数据库中房间类型
 * 
 * [## public void seRoomtype(){}]:
 * 功能:设置数据库中房间类型
 * 
 * [## public void Sql(String sql){}]:
 * 功能:执行sql语句进行查询
 * 
 **===================================================**/
package com.common;
import java.sql.*;
import java.util.Vector;
 
import javax.swing.JOptionPane;
import javax.xml.crypto.dsig.keyinfo.RetrievalMethod;
public class DataBaseConnect {
 private String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
 private String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=hotel_mangerment_system";
 private String userName="sa";
 private String userPwd="1451171";
 private Connection ct=null;
 private ResultSet rs=null;
 private Statement st;
 private Vector id =new Vector();
 private Vector password =new Vector();
 
 /**====================================================**
 * 获取数据库中系统登录ID
 **===================================================**/
 public Vector getId() {
 return id;
 }
 /**====================================================**
 * 设置数据库中系统登录ID
 **===================================================**/
 public void setId(Vector id) {
 this.id = id;
 }
 /**====================================================**
 * 获取数据库中系统登录密码
 **===================================================**/
 public Vector getPassword() {
 return password;
 }
 /**====================================================**
 * 设置数据库中系统登录ID
 **===================================================**/
 public void setPassword(Vector password) {
 this.password = password;
 }
 
 /**====================================================**
 * [## public void Sql(String sql) {}] 
 * 参数 :String sql
 * 返回值 :无
 * 修饰符 :public
 * 功能 :创建sql查询,从数据库里查询登陆账号与密码
 **===================================================**/
 public void Sql(String sql) throws Exception
 {
 Class.forName(driverName);
 ct=DriverManager.getConnection(dbURL,userName,userPwd);
 st=ct.createStatement();
 rs=st.executeQuery(sql);
 while(rs.next())
 {
 id.add(rs.getInt(1));
 password.add(rs.getInt(2));
 }
 if(rs!=null)
 rs.close();
 if(st!=null)
 st.close();
 if(ct!=null)
 ct.close();
 }
 /**====================================================**
 * [## public Vector RoomOperation(int room_num) {}] 查询房间信息 
 * 参数 :int room_num
 * 返回值 :无
 * 修饰符 :public
 * 功能 :创建sql查询房间号与类型,类外可使用
 **===================================================**/
 public Vector RoomOperation(int room_num)throws Exception
 {
 Vector<Object> data=new Vector<Object>();
 Class.forName(driverName);
 ct=DriverManager.getConnection(dbURL,userName,userPwd);
 st=ct.createStatement();
 rs=st.executeQuery("select * from room_table where roomnum="+room_num);
 while(rs.next())
 {
 data.add(rs.getInt(1));
 data.add(rs.getString(2));
 data.add(rs.getInt(3));
 data.add(rs.getInt(4));
 }
 if(rs!=null)
 rs.close();
 if(st!=null)
 st.close();
 if(ct!=null)
 ct.close();
 return data;
 }
 /**====================================================**
 * [## public void RoomOperation(String sql) {}] 查询房间使用状态
 * 参数 :String sql
 * 返回值 :房间个数
 * 修饰符 :public
 * 功能 :创建sql查询满足条件房间使用状态,类外可使用
 **===================================================**/
 public int getRow(String sql)throws Exception
 {
 Class.forName(driverName);
 ct=DriverManager.getConnection(dbURL,userName,userPwd);
 int rowcount=0;
 st=ct.createStatement();
 rs=st.executeQuery(sql);
 while(rs.next())
 {
 rowcount++;
 }
 if(rs!=null)
 rs.close();
 if(st!=null)
 st.close();
 if(ct!=null)
 ct.close();
 return rowcount;
 }
 
 /**====================================================**
 * [## public void insertData(){}] 插入记录
 * 参数 :String table_name,String str
 * 返回值 :无
 * 修饰符 :public
 * 功能 :向数据库中插入记录
 **===================================================
 * @throws Exception **/
 public void insertData(String table_name,String str) throws Exception
 {
 Class.forName(driverName);
 ct=DriverManager.getConnection(dbURL,userName,userPwd);
 ct.setAutoCommit(false);
 st=ct.createStatement();
 String sql="insert into"+" "+table_name+" "+"values"+"("+str+")";
 st.executeUpdate(sql);
 ct.commit();
 if(st!=null)
 st.close();
 if(ct!=null)
 ct.close();
 
 } 
 /**====================================================**
 * [## public void updateData(String str){}] 更新记录
 * 参数 :String sql
 * 返回值 :无
 * 修饰符 :public
 * 功能 :向数据库中更新记录
 **===================================================*/
 public void updateData(String sql) throws Exception
 {
 Class.forName(driverName);
 ct=DriverManager.getConnection(dbURL,userName,userPwd);
 ct.setAutoCommit(false);
 st=ct.createStatement();
 st.executeUpdate(sql);
 ct.commit();
 if(st!=null)
 st.close();
 if(ct!=null)
 ct.close();
 }
 /**====================================================**
 * [## public void getDataFromCostomer(){}] 从Costomer_table中获取数据
 * 参数 :int room_num
 * 返回值 :Vector<object> data
 * 修饰符 :public
 * 功能 :根据房间号从Costomer_table中获取数据并返回
 **===================================================*/
 public Vector getDataFromCostomer(int room_num) throws Exception
 {
 Vector<Object> data=new Vector<Object>();
 Class.forName(driverName);
 ct=DriverManager.getConnection(dbURL,userName,userPwd);
 ct.setAutoCommit(false);
 st=ct.createStatement();
 rs=st.executeQuery("select * from costomer_table where roomnum="+room_num+"and isliving=1");
 while(rs.next())
 {
 data.add(rs.getInt(1));
 data.add(rs.getString(2));
 data.add(rs.getString(3));
 data.add(rs.getString(4));
 data.add(rs.getString(5));
 data.add(rs.getString(6));
 data.add(rs.getInt(7));
 data.add(rs.getInt(8));
 data.add(rs.getInt(9));
 }
 if(rs!=null)
 rs.close();
 if(st!=null)
 st.close();
 if(ct!=null)
 ct.close();
 return data;
 }
 
 /**====================================================**
 * [## public Vector RoomOperation(int room_num) {}] 查询房间信息 
 * 参数 :无
 * 返回值 :return returedata;
 * 修饰符 :public
 * 功能 :创建sql查询房间号与类型,与入住状态并返回,类外可使用
 **===================================================**/
 public Vector RoomOperation()throws Exception
 {
 Vector<Vector> returedata=new Vector<Vector>();
 Vector<Object> roomnum=new Vector<Object>();
 Vector<Object> roomtype=new Vector<Object>();
 Vector<Integer> roomstate=new Vector<Integer>();
 Class.forName(driverName);
 ct=DriverManager.getConnection(dbURL,userName,userPwd);
 st=ct.createStatement();
 rs=st.executeQuery("select roomnum,roomtype,roomatate from room_table");
 while(rs.next())
 {
 roomnum.add(rs.getInt(1));
 roomtype.add(rs.getString(2));
 roomstate.add(rs.getInt(3));
 }
 if(rs!=null)
 rs.close();
 if(st!=null)
 st.close();
 if(ct!=null)
 ct.close();
 returedata.add(roomnum);
 returedata.add(roomtype);
 returedata.add(roomstate);
 return returedata;
 }
}

2.登录界面类

 /**====================================================**
 * 项目名 :酒店管理系统
 * 模块名 :系统登录窗口
 * 文件名 :HotelLoginGui.java
 * 相关文件 :DataBaseConnct.java HotelMainGui.java
 * 实现功能 :系统登录界面
 * 函数说明 :
 * [## public MyJframe(){}]:
 * 功能:构造函数 组建登录窗口
 * [## public void enevtOperation(final MyLoginJframe mj){}]
 * 功能:登录界面的事件监听处理
 * [## private boolean loginCheck() {}]:
 * 功能:登录验证,仅类内使用
 * [## private void quit() {}]:
 * 功能:关闭系统函数,仅类内使用
 **===================================================**/
package com.HotelGui;
import com.common.*;//引入包
 
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
 
import javax.jws.soap.SOAPBinding.Style;
import javax.swing.*;
 
import java.net.*;
import java.util.*;
public class HotelLoginGui {
 public static void main(String[] args) {
 // TODO Auto-generated method stub
 MyLoginJframe logingui=new MyLoginJframe();
 logingui.enevtOperation(logingui);
}
}
//登录界面MyJframe
class MyLoginJframe extends JFrame implements ActionListener
{
 DataBaseConnect dc;
 JPasswordField passwordnum;
 JTextField accountnum;
 JLabel password,account,login,backimg,backimg1;
 JLabel tiplabel;
 JComboBox<String> loginchoice;
 JButton loginbutton,resetbutton,exitbutton;
 JPanel jp,jp0,jp1,jp2,jp3,jp4,jp5;
 Vector<String> dept=new Vector<String>();
 private String id_now,user_type;
 /**=======================================================**
 * 设置当前成功登录的ID
 **========================================================*/
 public void setId_now(String id_now) {
 this.id_now = id_now;
 }
 
 /**=======================================================**
 * 获得当前成功登录的ID
 **========================================================*/
 public String getId_now() {
 return id_now;
 }
 /**====================================================**
 * **[## public MyJframe() {}] 组建登录窗口
 * 参数 :无
 * 返回值 :无
 * 修饰符 :public
 * 功能 :组建登录窗口
 **===================================================**/
 
 public MyLoginJframe()
 { dc=new DataBaseConnect();//连接数据库实例
 jp=new JPanel();
 
 jp.setBounds(0, -5,550, 200);
 jp0=new JPanel();
 jp0.setBounds(0,180,250,250);
 jp1=new JPanel();
 jp1.setBounds(270, 215, 250, 30);
 jp2=new JPanel();
 jp2.setBounds(270, 250, 250, 30);
 jp3=new JPanel();
 jp3.setBounds(270, 280, 250, 30);
 jp4=new JPanel();
 jp4.setBounds(270, 335, 250, 40);
 jp5=new JPanel();
 jp5.setBounds(270, 380, 250, 30);
 dept.add("经理");
 dept.add("部门主管");
 dept.add("普通员工");
 account=new JLabel("账 户");
 password=new JLabel("密 码");
 login=new JLabel("用 户 ");
 backimg=new JLabel(new ImageIcon("images\\back.jpg"));
 backimg1=new JLabel(new ImageIcon("images\\back1.jpg"));
 tiplabel=new JLabel();
 tiplabel.setFont(new Font("宋体", Font.PLAIN, 12));
 tiplabel.setForeground(Color.red);
 tiplabel.setVisible(false);
 passwordnum=new JPasswordField(12);
 accountnum=new JTextField(12);
 loginbutton=new JButton("登 录");
 loginbutton.setOpaque(false);
 loginbutton.setContentAreaFilled(false);
 
 resetbutton=new JButton("重 置");
 resetbutton.setOpaque(false);
 resetbutton.setContentAreaFilled(false);
 
 exitbutton =new JButton("退 出");
 exitbutton.setOpaque(false);
 exitbutton.setContentAreaFilled(false);
 
 loginchoice =new JComboBox(dept);
 jp.add(backimg);
 jp0.add(backimg1);
 jp1.add(account);
 jp1.add(accountnum);
 jp2.add(password);
 jp2.add(passwordnum);
 jp3.add(login);
 jp3.add(loginchoice);
 jp4.add(loginbutton);
 jp4.add(resetbutton);
 jp4.add(exitbutton);
 jp5.add(tiplabel);
 
 this.add(jp);
 this.add(jp0);
 this.add(jp1);
 this.add(jp2);
 this.add(jp3);
 this.add(jp4);
 this.add(jp5);
 this.setTitle("系统登录");
 this.setLayout(null);
 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 this.setResizable(false);
 this.setBounds(320, 160, 550, 450);
 this.setIconImage(new ImageIcon("images\\icon.jpg").getImage());
 this.setVisible(true);
 
 }
 /**====================================================**
 * **[## private void enevtOperation() {}] 事件处理
 * 参数 :无
 * 返回值 :无
 * 修饰符 :public
 * 功能 :登录窗口的事件操作
 **===================================================**/
 public void enevtOperation(final MyLoginJframe mj)
 {
 /**=======================================================**
 * 登录按钮监听事件
 **========================================================*/
 loginbutton.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub 
 if(loginCheck())
 {
 tiplabel.setText("正 在 登 录...");
 //记录当前的操作记录
 id_now=accountnum.getText();
 user_type=loginchoice.getSelectedItem().toString();
 MyHotelMainGui mm=new MyHotelMainGui(); //登录到主界面
 mj.dispose();
 //显示当前的操作人员信息
 mm.setId_now(id_now);
 mm.setUser_type(user_type);
 mm.enevtOpration();
 mm.updateRoomState();
 Thread th=new Thread(mm);
 th.start();
 
 }
 else if(accountnum.getText().isEmpty() && passwordnum.getPassword().length==0)
 tiplabel.setText("密码与账号不能为空!");
 else if(accountnum.getText().isEmpty() && passwordnum.getPassword().length!=0)
 tiplabel.setText("请输入账号...");
 else if(accountnum.getText().isEmpty()==false && passwordnum.getPassword().length==0)
 tiplabel.setText("请输入密码...");
 else
 tiplabel.setText("请检查后重新输入!");
 
 tiplabel.setVisible(true);
 }
 });
 /**=======================================================**
 * 重置按钮监听事件
 **========================================================*/
 resetbutton.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 accountnum.setText("");
 passwordnum.setText("");
 loginchoice.setSelectedIndex(0);
 }
 
 });
 /**=======================================================**
 * 退出按钮监听事件
 **========================================================*/
 exitbutton.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 quit();
 
 }
 });
 }
 
 /**====================================================**
 * **[## private boolean loginCheck() {}] 登陆验证
 * 参数 :无
 * 返回值 :flag
 * 修饰符 :private
 * 功能 :登录验证,仅类内使用
 **===================================================**/
 public boolean loginCheck()
 {
 boolean flag=false;
 if(loginchoice.getSelectedIndex()==0)
 {
 try {
 dc.Sql("select id,pass_word from mangerers_table");
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 }
 if(loginchoice.getSelectedIndex()==1)
 {
 try {
 dc.Sql("select id,pass_word from dept_table");
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 }
 if(loginchoice.getSelectedIndex()==2)
 {
 try {
 dc.Sql("select id,pass_word from common_table");
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 }
 for(int i=0;i<dc.getId().size();i++)
 {
 String password=new String(passwordnum.getPassword());
 if(accountnum.getText().equals(dc.getId().get(i).toString()) && password.equals(dc.getPassword().get(i).toString()))
 {
 flag=true;
 break;
 }
 
 }
 return flag;
 }
 /**====================================================**
 * **[## private void quit() {}] 系统退出
 * 参数 :无
 * 返回值 :无
 * 修饰符 :private
 * 功能 :关闭系统函数,仅类内使用
 **===================================================**/
 private void quit()
 {
 int flag=0;
 String msg="你 确 定 要 关 闭 系 统 吗?";
 flag=JOptionPane.showConfirmDialog(null, msg,"提示",JOptionPane.YES_NO_OPTION);
 if(flag==JOptionPane.YES_OPTION)
 {
 this.setVisible(false);
 System.exit(0);
 }
 return;
 }
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 
 }
}

3.主界面类

 /**====================================================**
 * 项目名 :酒店管理系统
 * 模块名 :系统登录成功后的主窗口
 * 文件名 :HotelMainGui.java
 * 相关文件 :HotelLoginGui.java DataBaseConnect.java
 * 实现功能 :系统登录成功后主界面
 * 函数说明 :
 * [## public MyHotelMainGui(int i){}]:
 * 功能:构造函数 
 * [## public MyHotelMainGui(){}]:
 * 功能:构造函数 组建登陆窗口
 * [## private boolean loginCheck() {}]:
 * 功能:登录验证,仅类内使用
 * [## private void quit() {}]:
 * 功能:关闭系统函数,仅类内使用
 * [## public void run(){}]
 * 功能:线程执行刷新界面
 * [## public void setLabelText(JLabel jl,int row)]
 * 功能:为JLabel设置text
 **===================================================**/
package com.HotelGui;
import java.awt.*;
 
import com.common.DataBaseConnect;
import com.databasejdbc.*;
 
import javax.swing.*;
 
import java.text.SimpleDateFormat;
import java.util.*;
import java.awt.event.*;
public class MyHotelMainGui extends JFrame implements ActionListener,Runnable
{
 public MyHotelMainGui(int i)
 {
 
 } 
 private static final FocusListener FocusListener = null;
 String roomnum,roomtype;
 JPopupMenu popupMenu;
 JMenuBar jmb;
 JPanel jp1,jp2,room_jp1;
 JLabel time_jl,order_jl,login_jl,change_jl,checkout_jl,relogin_jl,money_jl,exit_jl,emploer_jl;
 JMenu jm1,jm2,jm3,jm4,jm5,jm6,jm7,jm8,bt_jm;
 JButton time_bt,order_bt,login_bt,change_bt,checkout_bt,relogin_bt,money_bt,exit_bt,emploer_bt,oneF_bt,twoF_bt,threeF_bt,fourF_bt;
 Vector<JButton> roomjb=new Vector<JButton>();
 Vector<JPopupMenu> popupVector=new Vector<JPopupMenu>();
 JLabel statelabel,state,staticsstate;
 JButton jj;
 JLabel allroom_jl,empty_jl,ordered_jl,isliv_jl,else_jl,allroom_jl1,empty_jl1,ordered_jl1,isliv_jl1,else_jl1;
 String id_now,user_type;
 /**=======================================================**
 * 获取当前成功登录的ID
 **========================================================*/
 public String getId_now() {
 return id_now;
 }
 /**=======================================================**
 * 获取当前成功登录的用户类型
 **========================================================*/
 public String getUser_type() {
 return user_type;
 }
 /**=======================================================**
 * 设置当前成功登录的ID
 **========================================================*/
 public void setId_now(String id_now) {
 this.id_now = id_now;
 }
 /**=======================================================**
 * 设置当前成功登录的用户类型
 **========================================================*/
 public void setUser_type(String user_type) {
 this.user_type = user_type;
 }
 /**====================================================**
 * **[## public MyHotelMainGui() {}] 构造函数
 * 参数 :无
 * 返回值 :无
 * 修饰符 :public
 * 功能 :构造函数,初始化主界面
 **===================================================**/
 public MyHotelMainGui()
 {
 //为每个房间设置点击事件
 
 for( int i=0;i<32;i++)
 {
 final String str;
 if(i<10)
 {
 str="40"+(i+1);
 }
 else
 {
 str="4"+(i+1);
 }
 popupMenu = new JPopupMenu ();
 popupVector.add(popupMenu);
 JMenuItem orderMenuItem = new JMenuItem ("新预定") ;
 orderMenuItem.setFont(new Font("宋体",Font.ITALIC,14));
 popupVector.get(i).add ( orderMenuItem ) ;
 //添加事件
 orderMenuItem.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 CheckIn ck=new CheckIn("预订登记","images\\checkin_bt.jpg");
 ck.room_num_jf.setText(str);
 ck.cancelButton();
 //登記入住
 ck.checkinButton(1);
 updateRoomState();
 }
 });
 JMenuItem checkinMenuItem = new JMenuItem ("入住登记") ;
 checkinMenuItem.setFont(new Font("宋体",Font.ITALIC,14));
 popupVector.get(i).add ( checkinMenuItem ) ;
 checkinMenuItem.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 CheckIn ck=new CheckIn("入住登记","images\\checkin_bt.jpg");
 ck.room_num_jf.setText(str);
 ck.cancelButton();
 //登記入住
 ck.checkinButton(2);
 updateRoomState();
 }
 });
 
 
 // Separator
 popupMenu.addSeparator () ;
 JMenuItem changeMenuItem = new JMenuItem ("客人换房") ;
 changeMenuItem.setFont(new Font("宋体",Font.ITALIC,14));
 popupVector.get(i).add ( changeMenuItem ) ;
 changeMenuItem.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 ChangeRoom cr=new ChangeRoom("客人换房","images\\change_bt.jpg");
 cr.check_bt.setVisible(false);
 cr.jtf.setText(str);
 try {
 cr.check_Bt("房间未入住!");
 } catch (Exception e1) {
 // TODO Auto-generated catch block
 e1.printStackTrace();
 }
 
 
 }
 });
 JMenuItem msgMenuItem = new JMenuItem ("客人信息") ;
 msgMenuItem.setFont(new Font("宋体",Font.ITALIC,14));
 popupVector.get(i).add ( msgMenuItem ) ;
 msgMenuItem.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 CheckMsg cm=new CheckMsg("客人信息","images\\");
 cm.check_bt.setVisible(false);
 cm.jtf.setText(str); 
 try {
 cm.check_Bt("房间未入住!");
 } catch (Exception e1) {
 // TODO Auto-generated catch block
 e1.printStackTrace();
 }
 }
 });
 JMenuItem reckMenuItem = new JMenuItem ("客人续住") ;
 reckMenuItem.setFont(new Font("宋体",Font.ITALIC,14));
 popupVector.get(i).add ( reckMenuItem ) ;
 popupMenu.addSeparator () ;
 JMenuItem checkoutMenuItem = new JMenuItem ("客人退房") ;
 checkoutMenuItem.setFont(new Font("宋体",Font.ITALIC,14));
 popupVector.get(i).add ( checkoutMenuItem ) ;
 checkoutMenuItem.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 CheckOut co=new CheckOut("客人退房","images\\checkout_bt.jpg");
 co.check_bt.setVisible(false);
 co.jtf.setText(str); 
 try {
 co.check_Bt("房间未入住!");
 } catch (Exception e1) {
 // TODO Auto-generated catch block
 e1.printStackTrace();
 }
 }
 });
 }
 oneF_bt=new JButton(new ImageIcon("images\\1F.jpg"));
 oneF_bt.setBounds(20, 170, 60,50);
 twoF_bt=new JButton(new ImageIcon("images\\2F.jpg"));
 twoF_bt.setBounds(20, 250, 60,50);
 threeF_bt=new JButton(new ImageIcon("images\\3F.jpg"));
 threeF_bt.setBounds(20, 330, 60,50);
 fourF_bt=new JButton(new ImageIcon("images\\4F.jpg"));
 fourF_bt.setBounds(20, 410, 60,50);
 for(int i=0;i<32;i++)
 {
 JButton jb=new JButton();
 roomjb.add(jb);
 if(i<8)
 roomjb.get(i).setBounds(90*i, 0, 90, 90);
 else if(i<16)
 roomjb.get(i).setBounds(90*(i-8), 90, 90, 90);
 else if(i<24)
 roomjb.get(i).setBounds(90*(i-16), 180, 90, 90);
 else
 roomjb.get(i).setBounds(90*(i-24), 270, 90, 90);
 roomjb.get(i).setContentAreaFilled(false);
 roomjb.get(i).setComponentPopupMenu (popupVector.get(i));
 }
 //放置房间的JPanel
 room_jp1=new JPanel();
 room_jp1.setLayout(null);
 room_jp1.setBounds(120, 150, 730, 367);
 
 allroom_jl=new JLabel(new ImageIcon("images\\all.jpg"));
 allroom_jl1=new JLabel();
 allroom_jl.setBounds(950, 150, 75, 30);
 allroom_jl1.setBounds(1110, 150, 75, 30);
 empty_jl=new JLabel(new ImageIcon("images\\empty.jpg"));
 empty_jl1=new JLabel();
 empty_jl.setBounds(950, 200, 75, 30);
 empty_jl1.setBounds(1110, 200, 75, 30);
 ordered_jl=new JLabel(new ImageIcon("images\\order.jpg"));
 ordered_jl1=new JLabel();
 ordered_jl.setBounds(950, 250, 75, 30);
 ordered_jl1.setBounds(1110, 250, 75, 30);
 isliv_jl=new JLabel(new ImageIcon("images\\isliv.jpg"));
 isliv_jl1=new JLabel();
 isliv_jl.setBounds(950, 300, 75, 30);
 isliv_jl1.setBounds(1110, 300, 75, 30);
 else_jl=new JLabel(new ImageIcon("images\\else.jpg"));
 else_jl1=new JLabel();
 else_jl1.setBounds(1110, 350, 75, 30);
 else_jl.setBounds(950, 350, 75, 30);
 state=new JLabel("实时房态统计");
 state.setFont(new Font("宋体",Font.PLAIN,14));
 state.setBounds(1000, 90, 100, 40);
 staticsstate=new JLabel();
 staticsstate.setFont(new Font("宋体",Font.PLAIN,25));
 staticsstate.setBounds(970, 420, 250, 60);
 staticsstate.setForeground(Color.red);
 
 jp2=new JPanel();
 jp2.setBounds(10, 570, 950, 50);//底部登录状态显示
 
 statelabel=new JLabel();
 statelabel.setFont(new Font("宋体",Font.CENTER_BASELINE,12));
 jp2.add(statelabel);
 
 time_jl=new JLabel("实时房态");
 time_jl.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,10));
 time_jl.setBounds(10, 53, 40, 10);
 time_bt=new JButton(new ImageIcon("images\\实时房态.jpg"));
 time_bt.setBounds(10, 10, 40, 40);
 time_bt.setBorderPainted(false);
 
 order_bt=new JButton(new ImageIcon("images\\预定登记.jpg"));
 order_bt.setBounds(65, 10, 40, 40);
 order_bt.setBorderPainted(false);
 
 order_jl=new JLabel("预定登记");
 order_jl.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,10));
 order_jl.setBounds(65, 53, 40, 10);
 
 login_bt=new JButton(new ImageIcon("images\\入住登记.jpg"));
 login_bt.setBounds(120, 10, 40, 40);
 login_bt.setBorderPainted(false);
 
 login_jl=new JLabel("入住登记");
 login_jl.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,10));
 login_jl.setBounds(120, 53, 40, 10);
 
 change_bt=new JButton(new ImageIcon("images\\客人换房.jpg"));
 change_bt.setBounds(175, 10, 40, 40);
 change_bt.setBorderPainted(false);
 
 change_jl=new JLabel("客人换房");
 change_jl.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,10));
 change_jl.setBounds(175, 53, 40, 10);
 
 relogin_bt=new JButton(new ImageIcon("images\\客房续住.jpg"));
 relogin_bt.setBounds(230, 10, 40, 40);
 relogin_bt.setBorderPainted(false);
 
 relogin_jl=new JLabel("客人续住");
 relogin_jl.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,10));
 relogin_jl.setBounds(230, 53, 40, 10);
 
 checkout_jl=new JLabel("客人退房");
 checkout_jl.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,10));
 checkout_jl.setBounds(285, 53, 40, 10);
 checkout_bt=new JButton(new ImageIcon("images\\客人退房.jpg"));
 checkout_bt.setBounds(285, 10, 40, 40);
 checkout_bt.setBorderPainted(false);
 
 
 money_bt=new JButton(new ImageIcon("images\\收银报表.jpg"));
 money_bt.setBounds(340, 10, 40, 40);
 money_bt.setBorderPainted(false);
 
 money_jl=new JLabel("财务报表");
 money_jl.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,10));
 money_jl.setBounds(340, 53, 40, 10);
 
 exit_bt=new JButton(new ImageIcon("images\\退出系统.png"));
 exit_bt.setBounds(450, 10, 40, 40);
 exit_bt.setBorderPainted(false);
 
 exit_jl=new JLabel("退出系统");
 exit_jl.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,10));
 exit_jl.setBounds(450, 53, 40, 10);
 
 emploer_bt=new JButton(new ImageIcon("images\\员工管理.jpg"));
 emploer_bt.setBounds(395, 10, 40, 40);
 emploer_bt.setBorderPainted(false);
 
 emploer_jl=new JLabel("员工管理");
 emploer_jl.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,10));
 emploer_jl.setBounds(395, 53, 40, 10);
 
 jm1=new JMenu("预订接待(A)");
 jm1.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,12));
 jm2=new JMenu("前台营业(B)");
 jm2.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,12));
 jm3=new JMenu("客户管理(C)");
 jm3.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,12));
 jm4=new JMenu("员工管理(D)");
 jm4.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,12));
 jm5=new JMenu("财务报表(E)");
 jm5.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,12));
 jm6=new JMenu("综合查询(Z)");
 jm6.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,12));
 jm7=new JMenu("窗口(P)");
 jm7.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,12));
 jm8=new JMenu("帮助(H)");
 jm8.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,12));
 
 jmb=new JMenuBar();
 jmb.add(jm1);
 jmb.add(jm2);
 jmb.add(jm3);
 jmb.add(jm4);
 jmb.add(jm5);
 jmb.add(jm6);
 jmb.add(jm7);
 jmb.add(jm8);
 
 for(int i=0;i<32;i++)
 {
 room_jp1.add(roomjb.get(i));
 }
 
 this.add(oneF_bt);
 this.add(twoF_bt);
 this.add(threeF_bt);
 this.add(fourF_bt);
 
 this.add(time_bt);
 this.add(order_bt);
 this.add(login_bt);
 this.add(change_bt);
 this.add(relogin_bt);
 this.add(change_bt);
 this.add(checkout_bt);
 this.add(money_bt);
 this.add(exit_bt);
 this.add(emploer_bt);
 this.add(time_jl);
 this.add(order_jl);
 this.add(login_jl);
 this.add(change_jl);
 this.add(relogin_jl);
 this.add(change_jl);
 this.add(checkout_jl);
 this.add(money_jl);
 this.add(exit_jl);
 this.add(emploer_jl);
 this.add(jp2);
 this.add(state);
 this.add(allroom_jl);
 this.add(empty_jl);
 this.add(isliv_jl);
 this.add(ordered_jl);
 this.add(else_jl);
 this.add(allroom_jl1);
 this.add(empty_jl1);
 this.add(isliv_jl1);
 this.add(ordered_jl1);
 this.add(else_jl1);
 this.add(staticsstate);
 this.setResizable(false);
 this.setIconImage(new ImageIcon("images\\icon.jpg").getImage());
 this.setTitle("I酒店管理系统"+"——"+"["+"实时房态"+"]");
 this.setFont(new Font("宋体",Font.LAYOUT_NO_LIMIT_CONTEXT,12));
 this.setJMenuBar(jmb);
 this.setLocation(50, 50);
 this.setLayout(null);
 this.add(room_jp1);
 this.setSize(Toolkit.getDefaultToolkit().getScreenSize().width-100,Toolkit.getDefaultToolkit().getScreenSize().height-100);
 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 this.setVisible(true);
 }
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 
 }
 /**====================================================**
 * **[## public void enevtOpration {}] 主窗体上的事件监听
 * 参数 :无
 * 返回值 :无
 * 修饰符 :public
 * 功能 :监听用户在主窗体中的操作
 **===================================================**/
 public void enevtOpration()
 {
 order_bt.addMouseListener(new MouseListener() {
 
 
 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub
 CheckIn ck=new CheckIn("预订登记","images\\checkin_bt.jpg");
 ck.cancelButton();
 //登記入住
 ck.checkinButton(1);
 updateRoomState();
 }
 
 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub
 order_bt.setBorderPainted(true);
 }
 
 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub
 order_bt.setBorderPainted(false);
 }
 });
 login_bt.addMouseListener(new MouseListener() {
 
 
 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub
 CheckIn ck=new CheckIn("入住登记","images\\checkin_bt.jpg");
 ck.cancelButton();
 //登記入住
 ck.checkinButton(2);
 updateRoomState();
 }
 
 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub
 login_bt.setBorderPainted(true);
 }
 
 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub
 login_bt.setBorderPainted(false);
 }
 });
 change_bt.addMouseListener(new MouseListener() {
 
 
 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub
 ChangeRoom cr=new ChangeRoom("客人换房", "images\\change_bt.jpg");
 updateRoomState();
 repaint();
 
 }
 
 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub
 change_bt.setBorderPainted(true);
 }
 
 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub
 change_bt.setBorderPainted(false);
 }
 });
 relogin_bt.addMouseListener(new MouseListener() {
 
 
 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub
 relogin_bt.setBorderPainted(true);
 }
 
 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub
 relogin_bt.setBorderPainted(false);
 }
 });
 checkout_bt.addMouseListener(new MouseListener() {
 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub
 CheckOut co=new CheckOut("客人退房","images\\checkout_bt.jpg");
 }
 
 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub
 checkout_bt.setBorderPainted(true);
 }
 
 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub
 checkout_bt.setBorderPainted(false);
 }
 });
 money_bt.addMouseListener(new MouseListener() {
 
 
 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub
 money_bt.setBorderPainted(true);
 }
 
 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub
 money_bt.setBorderPainted(false);
 }
 });
 emploer_bt.addMouseListener(new MouseListener() {
 
 
 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub
 emploer_bt.setBorderPainted(true);
 }
 
 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub
 emploer_bt.setBorderPainted(false);
 }
 });
 exit_bt.addMouseListener(new MouseListener() {
 
 
 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub
 quit();
 }
 
 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub
 exit_bt.setBorderPainted(true);
 }
 
 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub
 exit_bt.setBorderPainted(false);
 }
 });
 time_bt.addMouseListener(new MouseListener() {
 
 
 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub
 updateRoomState();
 }
 
 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub
 
 }
 
 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub
 time_bt.setBorderPainted(true);
 }
 
 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub
 time_bt.setBorderPainted(false);
 }
 });
 
 }
 /**====================================================**
 * **[## public void run() {}] 线程执行,随着系统改变当前时间
 * 参数 :无
 * 返回值 :无
 * 修饰符 :public
 * 功能 :使用线程使当前界面时间随着系统改变当
 **===================================================**/
 public void run() {
 // TODO Auto-generated method stub
 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 while(true)
 {
 statelabel.setText("当前时间为:"+df.format(new Date())+" "+"当前登录的用户为:"+id_now+" "+"用户类型为:"+user_type);
 statelabel.repaint();
 this.repaint();
 
 }
 }
 
/**====================================================**
 * **[## private void quit() {}] 系统退出
 * 参数 :无
 * 返回值 :无
 * 修饰符 :private
 * 功能 :关闭系统函数,仅类内使用
 **===================================================**/
private void quit()
{
 int flag=0;
 String msg="你 确 定 要 关 闭 系 统 吗?";
 flag=JOptionPane.showConfirmDialog(null, msg,"提示",JOptionPane.YES_NO_OPTION);
 if(flag==JOptionPane.YES_OPTION)
 {
 this.setVisible(false);
 System.exit(0);
 }
 return;
}
/**====================================================**
 * **[## public void setLabelText(JLabel jl,int row) {}] 为JLabel设置text
 * 返回值 :无
 * 修饰符 :public
 * 功能 :为JLabel设置text
 **===================================================**/
public void setLabelText(JLabel jl,int row)
{
 try{
 jl.setText(Integer.toString(row)+" "+"间");
 }catch(Exception e){}
 }
/**====================================================**
 * **[## public void updateRoomState{}] 更新入住状态
 * 返回值 :无
 * 修饰符 :public
 * 功能 :更新入住统计情况
 **===================================================
 * @throws Exception **/
public void updateRoomState()
{
 DataBaseConnect ns=new DataBaseConnect();
 Vector<Vector> returndata = null;
 try {
 setLabelText(allroom_jl1, ns.getRow("select * from room_table"));
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 int tol=1;
 try {
 tol = ns.getRow("select * from room_table");
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 try {
 setLabelText(empty_jl1, ns.getRow("select * from room_table where roomatate=0"));
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 try {
 setLabelText(ordered_jl1, ns.getRow("select * from room_table where roomatate=1"));
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 try {
 setLabelText(isliv_jl1, ns.getRow("select * from room_table where roomatate=2"));
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 int isl=1;
 try {
 isl = ns.getRow("select * from room_table where roomatate=2");
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 try {
 setLabelText(else_jl1, ns.getRow("select * from room_table where roomatate=3"));
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 try {
 staticsstate.setText("入 住 率 :"+ " "+(int)(isl*100/tol)+"%");
 
 returndata=ns.RoomOperation();
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 for(int i=0;i<returndata.get(0).size();i++)
 {
 try{
 roomjb.get(i).setText("<html>" +returndata.get(0).get(i)+"<br>"+returndata.get(1).get(i)+"</html>");
 }catch(Exception e){}
 try{
 if(returndata.get(2).get(i).equals(0))
 roomjb.get(i).setForeground(Color.GREEN);
 else if(returndata.get(2).get(i).equals(1))
 roomjb.get(i).setForeground(Color.pink);
 else
 roomjb.get(i).setForeground(Color.red);
 }catch(Exception e){}
 repaint();
 
 }
 
 }
 
}

4.登记-换房-退房等父类

 /**====================================================**
 * 项目名 :酒店管理系统
 * 模块名 :入住登记窗口与预定登记窗口
 * 文件名 :CheckIn.java
 * 相关文件 :DataBaseConnct.java 
 * 实现功能 :入住登记或预定登记并写入数据库
 * 函数说明 :
 * [## public CheckIn(){}]:
 * 功能:构造函数 组建入住登记窗口
 * 
 * [## public void cancelButton(){}]
 * 功能:取消按钮的事件监听处理
 * 
 * [## returnButton{}]:
 * 功能:返回按钮的事件监听处理
 * 
 * [## public void checkinButton(final int flag){}]:
 * 功能:确定登记按钮的事件监听处理
 * 
 **===================================================**/
package com.databasejdbc;
import com.HotelGui.MyHotelMainGui;
import com.common.*;
 
import java.util.*;
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
 
import javax.swing.*;
public class CheckIn extends JFrame {
 
 JLabel name_jl,gender_jl,id_jl,room_num_jl,room_type_jl,checkin_jl,checkout_jl,tital_jl,tip_jl,price_jl,charge_jl,despoit_jl,tip_jl1,tip_jl2;
 JButton checkin_bt,cancel_bt,return_bt;
 JComboBox<String> gender_jb,room_type_jb;
 JTextField name_jf,id_jf;
 public JTextField room_num_jf;
 JTextField price_jf;
 JTextField despoit_jf;
 JTextField charge_jf;
 JTextField checkin_jf;
 JTextField checkout_jf;
 public static void main(String[] args) {
 // TODO Auto-generated method stub
 CheckIn ck=new CheckIn("入住登记","images\\checkin_bt.jpg");
 ck.cancelButton();
 //ck.checkinButton();
 }
 /**====================================================**
 * **[## public CheckIn(){}] 构造函数
 * 参数 :String str1,String path //界面Tital、按钮UI地址
 * 返回值 :无
 * 修饰符 :public
 * 功能 :构造函数,初始化入住登记界面
 **===================================================**/
 public CheckIn(String str1,String path)
 
 {
 tital_jl=new JLabel(str1);
 tital_jl.setBounds(300,20, 100, 60);
 tital_jl.setFont(new Font("宋体",Font.BOLD,23));
 tip_jl=new JLabel("(以下信息请完整填写)");
 tip_jl.setBounds(270,70, 200, 30);
 tip_jl.setFont(new Font("宋体",Font.HANGING_BASELINE,14));
 
 name_jl=new JLabel("姓 名");
 name_jl.setBounds(150, 170, 60, 30);
 name_jl.setFont(new Font("宋体",Font.HANGING_BASELINE,14));
 name_jf=new JTextField(10);
 name_jf.setBounds(230, 170, 140, 27);
 
 id_jl=new JLabel("身份证号");
 id_jl.setBounds(450, 170, 60, 30);
 id_jl.setFont(new Font("宋体",Font.HANGING_BASELINE,14));
 id_jf=new JTextField(10);
 id_jf.setBounds(530, 170, 140, 27);
 
 gender_jl=new JLabel("性 别");
 gender_jl.setBounds(150, 220, 60, 30);
 gender_jl.setFont(new Font("宋体",Font.HANGING_BASELINE,14));
 gender_jb=new JComboBox<String>();
 gender_jb.setBounds(230, 220, 140, 27);
 gender_jb.addItem("男");
 gender_jb.addItem("女");
 
 
 room_num_jl=new JLabel("房 间 号");
 room_num_jl.setBounds(450, 220, 60, 30);
 room_num_jl.setFont(new Font("宋体",Font.HANGING_BASELINE,14));
 room_num_jf=new JTextField(10);
 room_num_jf.setBounds(530, 220, 140, 27);
 
 room_type_jl=new JLabel("房间标准");
 room_type_jl.setBounds(150, 270, 60, 30);
 room_type_jl.setFont(new Font("宋体",Font.HANGING_BASELINE,14));
 room_type_jb=new JComboBox<String>();
 room_type_jb.setBounds(230, 270, 140, 27);
 room_type_jb.addItem("商务单间");
 room_type_jb.addItem("商务标间");
 room_type_jb.addItem("大床房");
 room_type_jb.addItem("杂物间");
 
 price_jl=new JLabel("房间价格");
 price_jl.setBounds(450, 270, 60, 30);
 price_jl.setFont(new Font("宋体",Font.HANGING_BASELINE,14));
 price_jf=new JTextField(10);
 price_jf.setBounds(530, 270, 140, 27);
 
 charge_jl=new JLabel("实际收费");
 charge_jl.setBounds(150, 320, 60, 30);
 charge_jl.setFont(new Font("宋体",Font.HANGING_BASELINE,14));
 charge_jf=new JTextField(10);
 charge_jf.setBounds(230, 320, 140, 27);
 
 despoit_jl=new JLabel("预收押金");
 despoit_jl.setBounds(450, 320, 60, 30);
 despoit_jl.setFont(new Font("宋体",Font.HANGING_BASELINE,14));
 despoit_jf=new JTextField(10);
 despoit_jf.setBounds(530, 320, 140, 27);
 
 checkin_jl=new JLabel("入住日期");
 tip_jl1=new JLabel("(####-##-##)");
 tip_jl1.setBounds(145, 400, 80, 40);
 checkin_jl.setBounds(150, 370, 60, 40);
 checkin_jl.setFont(new Font("宋体",Font.HANGING_BASELINE,14));
 checkin_jf=new JTextField(10);
 checkin_jf.setBounds(230, 370, 140, 27);
 
 checkout_jl=new JLabel("离店日期");
 tip_jl2=new JLabel("(####-##-##)");
 tip_jl2.setBounds(445, 400, 80, 40);
 checkout_jl.setBounds(450, 370, 60, 30);
 checkout_jl.setFont(new Font("宋体",Font.HANGING_BASELINE,14));
 checkout_jf=new JTextField(10);
 checkout_jf.setBounds(530, 370, 140, 27);
 
 checkin_bt=new JButton(new ImageIcon(path));
 checkin_bt.setBounds(160, 500, 85, 30);
 checkin_bt.setOpaque(false);
 
 cancel_bt=new JButton(new ImageIcon("images\\cancel_bt.jpg"));
 cancel_bt.setBounds(345, 500, 85, 30);
 cancel_bt.setOpaque(false);
 
 return_bt=new JButton(new ImageIcon("images\\return_bt.jpg"));
 return_bt.setBounds(530, 500, 85, 30);
 return_bt.setOpaque(false);
 return_bt.setActionCommand("1");
 /**========================================**
 * 返回按钮注册监听
 =========================================*/
 return_bt.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 if(e.getActionCommand().equals("1"))
 returnButton();
 }
 });
 
 this.setLayout(null);
 this.add(tital_jl);
 this.add(tip_jl);
 this.add(name_jl);
 this.add(name_jf);
 this.add(id_jl);
 this.add(gender_jl);
 this.add(room_num_jl);
 this.add(room_type_jl);
 this.add(price_jl);
 this.add(charge_jl);
 this.add(despoit_jl);
 this.add(checkin_jl);
 this.add(tip_jl1);
 this.add(checkout_jl);
 this.add(tip_jl2);
 this.add(checkin_bt);
 this.add(cancel_bt);
 this.add(return_bt);
 this.add(id_jf);
 this.add(gender_jb);
 this.add(room_num_jf);
 this.add(room_type_jb);
 this.add(price_jf);
 this.add(charge_jf);
 this.add(despoit_jf);
 this.add(checkin_jf);
 this.add(checkout_jf);
 
 this.setTitle(str1);
 this.setIconImage(new ImageIcon("images\\入住登记.jpg").getImage());
 this.setBounds(250, 80, Toolkit.getDefaultToolkit().getScreenSize().width-600,Toolkit.getDefaultToolkit().getScreenSize().height-150);
 this.setResizable(false);
 this.setVisible(true);
}
 
 /**====================================================**
 * **[## public void cancelButton() {}] 取消按钮操作
 * 参数 :无
 * 返回值 :无
 * 修饰符 :public
 * 功能 :点击取消按钮清空操作
 **===================================================**/
 public void cancelButton() 
 {
 cancel_bt.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 name_jf.setText("");
 id_jf.setText("");
 room_num_jf.setText("");
 charge_jf.setText("");
 price_jf.setText("");
 despoit_jf.setText("");
 checkin_jf.setText("");
 checkout_jf.setText("");
 gender_jb.setSelectedIndex(0);
 room_type_jb.setSelectedIndex(0);
 }
 
 });
 }
 /**====================================================**
 * **[## public void returnButton() {}] 返回按钮操作
 * 参数 :无
 * 返回值 :无
 * 修饰符 :public
 * 功能 :点击返回按钮返回到主界面,入住登记界面释放
 **===================================================**/
 public void returnButton()
 {
 this.dispose();
 }
 /**====================================================**
 * **[## public void checkinButton(int flag) {}] 确定按钮操作
 * 参数 :int flag flag==1,则表示入住登记状态更改 ;flag==2,则表示预订登记状态更改
 * 返回值 :无
 * 修饰符 :public
 * 功能 :点击确定按钮进行入住登记输入数据库操作操作
 **===================================================**/
 public void checkinButton(final int flag)
 {
 checkin_bt.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub 
 
 DataBaseConnect dc=new DataBaseConnect();
 String str=new String(Integer.valueOf(room_num_jf.getText())+",\'"+name_jf.getText()+"\',\'"+gender_jb.getSelectedItem().toString()+"\',\'"+
 id_jf.getText()+"\',\'"+checkin_jf.getText()+"\',\'"+checkout_jf.getText()+"\',"+Integer.valueOf(charge_jf.getText())+","+Integer.valueOf(despoit_jf.getText())+","+1);
 try {
 dc.insertData("costomer_table", str);
 } catch (Exception e1) {
 // TODO Auto-generated catch block
 e1.printStackTrace();
 }
 String sql="update room_table set roomatate="+flag+" where roomnum="+Integer.valueOf(room_num_jf.getText());
 try {
 dc.updateData(sql);
 } catch (Exception e1) {
 // TODO Auto-generated catch block
 e1.printStackTrace();
 }
 JOptionPane.showConfirmDialog(null, "登记成功!","提示",JOptionPane.CLOSED_OPTION);
 int option=0;
 if(option==JOptionPane.YES_OPTION)
 {
 try{
 MyHotelMainGui hm=new MyHotelMainGui(1);
 hm.updateRoomState();
 Thread th=new Thread(hm);
 th.start();
 }
 catch(Exception e1)
 {}
 
 }
 }
 });
 
 }
 
 
}

源代码比较多,就不再上传了,欢迎交流,共同学习进步。项目全部资源需要可从此下载:java实现酒店管理系统

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。