⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hotel.java

📁 本系统适合中小规模宾馆使用
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import javax.swing.*;//GUI
import javax.swing.JOptionPane;
import java.awt.*;

import java.awt.event.*;

import java.sql.*;

import java.util.*;




public class Hotel extends JFrame {
  JButton jButton1 = new JButton();//Add guest
  JButton jButton2 = new JButton();
  JButton jButton3 = new JButton();
  JButton jButton4 = new JButton();
  JButton jButton5 = new JButton();

  JPanel jPanel1 = new JPanel();
  JPanel jPanel2 = new JPanel();
  JPanel jPanel3 = new JPanel();
  JPanel jPanel4 = new JPanel();
  
  Connection connect;
  String url;
  boolean roomordered;
  int price_eachday=1;//房价

  GridLayout gridLayout1 = new GridLayout();
  String Slected[]={"male","female"};

  JMenuBar jMenuBar1 = new JMenuBar();
  JMenu jMenu1 = new JMenu();
  JMenu jMenu2 = new JMenu();
  JMenu jMenu3 = new JMenu();
  JMenu jMenu4 = new JMenu("链接");
  JMenuItem jMenuItem1 = new JMenuItem();
  JMenuItem jMenuItem2 = new JMenuItem();
  JMenuItem jMenuItem3 = new JMenuItem("责任表duty");

  JLabel jLabel2 = new JLabel();
  JLabel jLabel3 = new JLabel();
  JLabel jLabel4 = new JLabel();
  JLabel jLabel5 = new JLabel();
  JLabel jLabel6 = new JLabel();
  JLabel jLabel7 = new JLabel();
  
  JComboBox jComboBox1 = new JComboBox(Slected);//性别组合框

  JTextField jTextField1 = new JTextField(); 
  JTextField jTextField2 = new JTextField();
  JTextField jTextField4 = new JTextField();
  JTextField jTextField5 = new JTextField();
  JTextField jTextField6 = new JTextField();
  
  Clocklabel clocklabel1 = new Clocklabel();//调用Clocklabel类
  
  JScrollPane jScrollPane1 = new JScrollPane();//滚动面板
  JTextArea jTextArea1 = new JTextArea();//文本区,用于显示"连接成功"等操作提示提示

    
  public Hotel() {
    try {
      Init();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  
  private void Init() throws Exception {

  	//界面设置
    this.getContentPane().setLayout(null);
    this.setLocale(java.util.Locale.getDefault());

  	//关于5个按钮
    jButton1.setText("添加客户");
    jButton1.addActionListener(new Hotel_jButton1_actionAdapter(this));
    
    jButton2.setText("删除客户");
    jButton2.addActionListener(new Hotel_jButton2_actionAdapter(this));

    jButton3.setText("房客查寻");
    jButton3.addActionListener(new Hotel_jButton3_actionAdapter(this));

    jButton4.setText("空房查寻");
    jButton4.addActionListener(new Hotel_jButton4_actionAdapter(this));

    jButton5.setText("清空");
    jButton5.addActionListener(new Hotel_jButton5_actionAdapter(this));

    //4张面板布局设置
    jPanel1.setLayout(gridLayout1);
    jPanel2.setLayout(null);
    jPanel3.setLayout(null);
    jPanel4.setLayout(null);    

    //关于6个标签 2~7
    jLabel2.setFont(new java.awt.Font("Dialog", 0, 13));
    jLabel2.setText("          姓名");
    jLabel2.setBounds(new Rectangle(0, 0, 161, 32));

    jLabel3.setFont(new java.awt.Font("Dialog", 0, 13));
    jLabel3.setText("          性别");
    jLabel3.setBounds(new Rectangle(0, 32, 161, 32));
 

    jLabel4.setFont(new java.awt.Font("Dialog", 0, 13));
    jLabel4.setText("          年龄");
    jLabel4.setBounds(new Rectangle(0, 64, 161, 32));

    jLabel5.setFont(new java.awt.Font("Dialog", 0, 13));
    jLabel5.setText("       身份证号");
    jLabel5.setBounds(new Rectangle(0, 96, 161, 32));

    jLabel6.setFont(new java.awt.Font("Dialog", 0, 13));
    jLabel6.setText("          房号");
    jLabel6.setBounds(new Rectangle(0, 128, 161, 32));

    jLabel7.setFont(new java.awt.Font("Dialog", 0, 13));
    jLabel7.setText("       当前金额");
    jLabel7.setBounds(new Rectangle(0, 160, 161, 32));

    //设置4张面板
    jPanel1.setBounds(new Rectangle(0, 1, 493, 41));

    jPanel2.setBounds(new Rectangle(-2, 78, 471, 202));

    jPanel3.setDebugGraphicsOptions(0);
    jPanel3.setBounds(new Rectangle(2, 0, 322, 197));

    jPanel4.setDebugGraphicsOptions(0);
    jPanel4.setBounds(new Rectangle(335, 0, 118, 202));

    //关于3个菜单和2个菜单项
    jMenu1.setText("  关于");
    jMenu2.setText("作者及版权");
    jMenu3.setText("  使用方法");

    jMenuItem1.setText("Read me");
    jMenuItem1.addActionListener(new Hotel_jMenuItem1_actionAdapter(this));

    jMenuItem2.setText("Read_me");
    jMenuItem2.addActionListener(new Hotel_jMenuItem2_actionAdapter(this));

    jMenuItem3.addActionListener(new Hotel_jMenuItem3_actionAdapter(this));

    //关于组合框(下拉列表)
    jComboBox1.setDebugGraphicsOptions(0);
    jComboBox1.setToolTipText("");
    jComboBox1.setEditable(false);
    jComboBox1.setSelectedIndex(0);
    jComboBox1.setSelectedItem(this);
    jComboBox1.setBounds(new Rectangle(161, 32, 161, 32));

    //关于5个文本域 1,2,4,5,6
    jTextField1.setText("jTextField1");
    jTextField1.setBounds(new Rectangle(161, 160, 161, 32));
    jTextField1.setEditable(false);//不可编辑

    jTextField2.setText("jTextField2");
    jTextField2.setBounds(new Rectangle(161, 0, 161, 32));

    jTextField4.setText("jTextField4");
    jTextField4.setBounds(new Rectangle(161, 65, 161, 32));

    jTextField5.setText("jTextField5");
    jTextField5.setBounds(new Rectangle(161, 96, 161, 32));

    jTextField6.setText("jTextField6");
    jTextField6.setBounds(new Rectangle(161, 128, 161, 32));

    //设置clocklabel
    clocklabel1.setBounds(new Rectangle(46, 78, 72, 19));

    //设置滚动面板
    jScrollPane1.setBounds(new Rectangle(9, 285, 500, 200));
    jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

    jTextArea1.setText("jTextArea1");
    //jTextArea1.setLineWrap(true);

/*    database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:odbc:hotel2", "", "", false, "sun.jdbc.odbc.JdbcOdbcDriver"));
    queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from hotel2", null, true, Load.ALL));
    tableScrollPane1.setBounds(new Rectangle(491, 42, 491, 359));
    jdbTable1.setDataSet(queryDataSet1);
    jdbNavToolBar1.setBounds(new Rectangle(491, 2, 491, 39));
    jdbStatusLabel1.setText("jdbStatusLabel1");
*/

    jPanel1.add(jButton1, null);//Panel1放置:五个按钮,
    jPanel1.add(jButton2, null);
    jPanel1.add(jButton3, null);
    jPanel1.add(jButton4, null);
    jPanel1.add(jButton5, null);

/*    this.getContentPane().add(jdbNavToolBar1, null);
    this.getContentPane().add(tableScrollPane1, null);
    tableScrollPane1.getViewport().add(jdbTable1, null);
    jdbNavToolBar1.add(jdbStatusLabel1, null);
*/ 
    this.getContentPane().add(jScrollPane1, null);
    jScrollPane1.getViewport().add(jTextArea1, null);


    //Panel3放置Label 2~7 及Textfied 2~7:name,sex,age,idnumber,room ,in_date(charge)
    jPanel3.add(jLabel2, null);
    jPanel3.add(jTextField2, null);
    jPanel3.add(jLabel3, null);
    jPanel3.add(jComboBox1, null);
    jPanel3.add(jLabel4, null);
    jPanel3.add(jTextField4, null);
    jPanel3.add(jLabel5, null);
    jPanel3.add(jTextField5, null);
    jPanel3.add(jLabel6, null);
    jPanel3.add(jTextField6, null);
    jPanel3.add(jLabel7, null);
    jPanel3.add(jTextField1, null);

    jPanel4.add(clocklabel1, null);

    jPanel2.add(jPanel3, null);
    jPanel2.add(jPanel4, null);

    this.getContentPane().add(jPanel1, null);
    this.getContentPane().add(jPanel2, null);

    jMenuBar1.add(jMenu1);
    jMenuBar1.add(jMenu4);
    jMenu1.add(jMenu2);
    jMenu1.add(jMenu3);
    jMenu2.add(jMenuItem1);
    jMenu3.add(jMenuItem2);
    jMenu4.add(jMenuItem3);
    setJMenuBar(jMenuBar1);

//GUI到此结束,下面是与DB的连接    -------------------------------------------------------

try{
      url = "jdbc:odbc:hotel";
      String user1="sa";
      String password1="";
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      connect = DriverManager.getConnection(url,user1,password1);
      jTextArea1.append("Connection Successful!");
    }
    catch ( ClassNotFoundException cnfex ) {
         // process ClassNotFoundExceptions here
         cnfex.printStackTrace();

      }
      catch ( SQLException sqlex ) {
         // process SQLExceptions here
         sqlex.printStackTrace();

      }
      catch ( Exception ex ) {
         // process remaining Exceptions here
         ex.printStackTrace();

      }//三个catch可能需要改写
      
    setSize(new Dimension(550, 650));
    setVisible(false);

  }

//至此连接结束,以后是监听器的安装  --------------------------------------------

  //添加客户 Butten 1
  void jButton1_actionPerformed(ActionEvent e) {
    try {
          roomwithpeople(jTextField6.getText());
          //如果已有客人入住
          if(roomordered)
            {
              JOptionPane.showMessageDialog(null, jTextField6.getText()+"房间已经有客人,请您另选一间");
              jTextField6.setText("");

            }
         else
          {
           // boolean judge=false;
            Statement statement = connect.createStatement();
            Calendar cal=Calendar.getInstance( );
            String c=cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE);

            //if语句中的4个函数在下面有实现
            if (namelegal()&&judge_age()&&judge_sex()) {
              String query = "INSERT INTO hotel (" +
                  " gname,sex,age,idnumber,room ,in_date" +

                  ") VALUES ('" +

                  jTextField2.getText() + "', '" +
                  jComboBox1.getSelectedItem() + "', '" +
                  jTextField4.getText() + "', '" +
                  jTextField5.getText() + "', '" +
                  jTextField6.getText() +"', '"+
                  c+"')";


              jTextArea1.append("\n发送的命令:" + connect.nativeSQL(query) + "\n");

              int result = statement.executeUpdate(query);

              if (result == 1)
                jTextArea1.append("\n插入成功\n");
                //若插入失败,则清空一切
              else {
                jTextArea1.append("\n插入失败\n");
                jTextField2.setText("");
                jComboBox1.setSelectedIndex( -1);
                jTextField4.setText("");
                jTextField5.setText("");
                jTextField6.setText("");

              }
            }
          //  else
           //   jTextArea1.append("\n必须输入输入姓名和房号");

            statement.close();
          }


        }
         catch ( SQLException sqlex ) {
            sqlex.printStackTrace();
            jTextArea1.append( sqlex.toString() );
         }

  }

  void roomwithpeople(String roomnum)//针对房号(TextField 6)
  {

    try{

      Statement statement = connect.createStatement( );
        String query = "SELECT * FROM hotel WHERE room = '"+roomnum+"'";
        jTextArea1.append("\n发送的命令: " +
                          connect.nativeSQL(query)
                          + "\n");
        ResultSet rs = statement.executeQuery(query);
        judge(rs);

        statement.close();

      }
      catch(SQLException sqlex){sqlex.printStackTrace();
         jTextArea1.append( sqlex.toString() );}



  }
    void judge( ResultSet r )
   {

      try {
         //r.next();

         //int recordNumber = r.getInt( 1 );

         if (r.next())
         {

            roomordered=true;

         }
         else
             roomordered=false;
      }
      catch ( SQLException sqlex ) {
         sqlex.printStackTrace();
         jTextArea1.append( sqlex.toString() );
      }

   }


  //删除客户 Button 2
  // boolean morethanone=false;
  void jButton2_actionPerformed(ActionEvent e) {


    try {
    	    //按姓名删除,先查询再删除
            if ( !jTextField2.getText().equals( "" ) ) {
              Statement statement =connect.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,
                                         ResultSet.CONCUR_UPDATABLE);
              String query="SELECT * FROM hotel " +
                              "WHERE gname = '" +
                              jTextField2.getText() + "'";

              jTextArea1.append( "\n发送的命令: " +
                              connect.nativeSQL( query )
                              + "\n" );

               ResultSet rs = statement.executeQuery( query );
               displaydetail( rs );
               //jTextArea1.append( "\n查询成功\n" );
               statement.close();
            }
            else
               jTextArea1.setText(
                  "请输入要删除的房客姓名" );
         }
         catch ( SQLException sqlex ) {
            sqlex.printStackTrace();
            jTextArea1.append( sqlex.toString() );
         }

  }

  void displaydetail( ResultSet rs )  {
     try {
           Calendar cal=Calendar.getInstance( );
           String c=cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE);
           boolean morerows=false;


        if (rs.next() ) {

           jTextField2.setText( rs.getString(1) );
           jComboBox1.setSelectedItem( rs.getString( 2 ) );
           jTextField4.setText( rs.getString( 3 ) );
           jTextField5.setText( rs.getString( 4 ) );
           jTextField6.setText( rs.getString( 5 ) );
           String temp=rs.getString(6);
           Countdays count =new Countdays(temp,c);
           jTextField1.setText(" "+price_eachday*count.getdays());
           if(rs.next()) morerows=true;
           if(!morerows)
           {
             String command = "DELETE FROM hotel WHERE gname LIKE" +
                 "'" + jTextField2.getText() + "'";
             delete(command);
           }

        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -