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实现酒店管理系统

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

(0)

相关推荐

  • 一个简陋的java图书管理系统

    本文代码为原创一个简陋的管理系统,只做功能的测试.并没有去完善所有应有的功能,只做了输入输出查找,仅供参考! 菜单部分: import java.util.Scanner; public class Menu { int Min = 1; int Max = 3; public void getMenu(){ System.out.println("1.显示/2.输入/3.查找"); } public void getFindMenu(){ System.out.println(&qu

  • Java+MySQL实现学生信息管理系统源码

    基于Java swing+MySQL实现学生信息管理系统:主要实现JDBC对学生信息进行增删改查,应付一般课设足矣,分享给大家.(由于篇幅原因,代码未全部列出,如有需要留下邮箱) 鉴于太多同学要源码,实在发不过来,上传到github上 https://github.com/ZhuangM/student.git 1. 开发环境:jdk7+MySQL5+win7 代码结构:model-dao-view 2. 数据库设计--建库建表语句: CREATE DATABASE student; DROP

  • java学生信息管理系统源代码

    本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] .删除 .查找.更改,供大家参考,具体内容如下 /*学生信息管理系统,实现学生信息: *增加 int[] a=new int[9] *删除 *查找 *更改 */ import java.util.Scanner;//导入java输入流 import java.lang.*; import java.io.*; class Student { private static Stude

  • javaWeb实现学生信息管理系统

    本文为大家分享了javaWeb实现学生信息管理系统,供大家参考,具体内容如下 初始版 初始版是没有加分页的.因为没怎么学过前端,界面很丑陋.主要技术:JSP,JavaBean,servlet,JDBC主要页面如下: 登录页面 主页 添加学生 查看所有学生 查询学生 工程目录 数据库 两个表,user表和student表.为了使用DBUtils工具,一定要注意数据库表的属性的命名和JavaBean的get(),set() 方法的匹配.比如t_user表里的uname,在JavaBean中是:pri

  • Java GUI实现学生成绩管理系统

    学习java有一年多了,一直在做web方面的练习,在一个项目中发现需要用到GUI的相关知识,结果没法做出来,网上这方面的文章又不是很多,所有只好自己硬着头皮从头再学一遍了,不过学习后发现,其实GUI是非常有趣的,他并不像WEB程序一样依赖互联网,而且还有许多布局和android相差不是很大,这才发现自己竟又爱上GUI的开发了,不多说了,直接上代码吧,相信有过android或相关界面开发的都明白这其中的道理. 先看看效果吧 1.登录主界面 package edu.gzu.stuManager; i

  • 图书管理系统java代码实现

    本文实例为大家分享了java实现图书管理系统的具体代码,供大家参考,具体内容如下 /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:    <图书管理系统--java>                          * 作    者:       刘江波                       * 完成日期:    2012     年  3    

  • 简单实现Java版学生管理系统

    本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWi

  • java学生管理系统界面简单实现(全)

    学生管理系统简单的实现,供初学Java Swing同学学习使用. import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import jav

  • Java+Mysql学生管理系统源码

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:dingyelf@aliyun.com 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤:  

  • 图书管理系统java版

    本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询.插入.删除.修改. 内容:在数据库中创建一张书目信息表,包括书名.作者.出版社.出版日期.书号.价格字段.设计一个GUI界面进行书目管理.在该界面上有四个选项卡,分别是查询.插入.删除.修改.点击查询选项卡,出现的界面上有书名.作者.出版社.书号四个文本框,一个按钮和一个只读文本区.文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的"查询"按钮,可以在界面

随机推荐