欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java实现酒店管理系统

程序员文章站 2024-02-28 15:23:10
本文实例为大家分享了java实现酒店管理系统的具体代码,供大家参考,具体内容如下 编写环境:myeclipse2014+sql server2014 系统功能: 1....

本文实例为大家分享了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实现酒店管理系统

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