扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本文实例为大家分享了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
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; JComboBoxloginchoice; JButton loginbutton,resetbutton,exitbutton; JPanel jp,jp0,jp1,jp2,jp3,jp4,jp5; Vector dept=new Vector (); 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
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; Vectorroomjb=new Vector (); Vector popupVector=new Vector (); 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 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).get(i)+"
"+returndata.get(1).get(i)+""); }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; JComboBoxgender_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 (); 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 (); 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实现酒店管理系统
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流