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

📄 consign[anank].java

📁 (1)功能模块: A :个人开户功能 B :查询功能 查询个人用户信息 查询各个房间使用信息 查询寄存物品信息 C :增加寄存物品模块 用JAVA实现宾馆客房管理系统
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.table.* ;
import javax.swing.event.ListSelectionListener ;//用ListSelectionListener和ListSelectionEvent的时候好像要单独引入!~
import javax.swing.event.ListSelectionEvent ;
import java.util.Date ;

public class Consign
{
	static int consignNumber = 1000 ;
	public Consign()
	{
		JFrame.setDefaultLookAndFeelDecorated(true);//把JFrame设置城修饰的外观!
		final JFrame frame = new JFrame("寄存物品设置") ;
		frame.setSize(700, 500) ;
		Container content = frame.getContentPane() ;
		content.setLayout(new BorderLayout()) ;
		
		GridBagLayout gbl = new GridBagLayout() ;
		GridBagConstraints gbc = new GridBagConstraints() ;
		
		JPanel panUp = new JPanel() ;
		panUp.setLayout(gbl) ;
		//添加JLabel-寄存人姓名!
		final JLabel lblName = new JLabel("寄存人姓名", SwingConstants.LEFT) ;
		gbc.gridx = 0 ;
		gbc.gridy = 0 ;
		gbc.gridwidth = 1 ;
		gbc.gridheight = 1 ;
		gbc.insets = new Insets(10, 10, 10, 10) ;
		gbl.setConstraints(lblName, gbc) ;
		panUp.add(lblName) ;
		//添加JTextField-寄存人姓名
		final JTextField txtName = new JTextField(10) ;
		gbc.gridx++ ;
		gbc.gridy = 0 ;
		gbc.gridwidth = 1 ;
		gbc.gridheight = 1 ;
		gbl.setConstraints(txtName, gbc) ;
		panUp.add(txtName) ;
		//添加JComboBox-性别
		final JLabel lblSex = new JLabel("性别", SwingConstants.CENTER) ;
		gbc.gridx++ ;
		gbc.gridy = 0 ;
		gbc.gridwidth = 1 ;
		gbc.gridheight = 1 ;
		gbl.setConstraints(lblSex, gbc) ;
		panUp.add(lblSex) ;
		//
		String[] itemsSex = {"男", "女"} ;
		final JComboBox comboxSex = new JComboBox(itemsSex) ;
		gbc.gridx++ ;
		gbc.gridy = 0 ;
		gbc.gridwidth = 1 ;
		gbc.gridheight = 1 ;
		gbc.ipadx = 70 ;
		gbc.ipady = -6 ;
		
		gbl.setConstraints(comboxSex, gbc) ;
		panUp.add(comboxSex) ;
		gbc.ipadx = 0 ;
		gbc.ipady = 0 ;
		//
		final JLabel lblPassword = new JLabel("密码", SwingConstants.CENTER) ;
		gbc.gridx++ ;
		gbc.gridy = 0 ;
		gbc.gridwidth = 1 ;
		gbc.gridheight = 1 ;
		gbl.setConstraints(lblPassword, gbc) ;
		panUp.add(lblPassword) ;
		//
		final JPasswordField txtPassword = new JPasswordField(10) ;
		gbc.gridx++ ;
		gbc.gridy = 0 ;
		gbc.gridwidth = 1 ;
		gbc.gridheight = 1 ;
		gbl.setConstraints(txtPassword, gbc) ;
		panUp.add(txtPassword) ;
	    //
	    final JLabel lblConName = new JLabel("寄存品名",SwingConstants.CENTER) ;
	    gbc.gridx = 0 ;
	    gbc.gridy = 1 ;
	    gbc.gridwidth = 1 ;
	    gbc.gridheight = 1 ;
	    gbl.setConstraints(lblConName, gbc) ;
	    panUp.add(lblConName) ;
	    //
	    final JTextField txtConName = new JTextField(10) ;
	    gbc.gridx++ ;
	    gbc.gridy = 1;
	    gbc.gridwidth = 1 ;
	    gbc.gridheight = 1 ;
	    gbl.setConstraints(txtConName, gbc) ;
	    panUp.add(txtConName) ;
	    //
	    final JLabel lblConCount = new JLabel("数量", SwingConstants.CENTER) ;
	    gbc.gridx ++ ;
	    gbc.gridy = 1;
	    gbc.gridwidth = 1 ;
	    gbc.gridheight = 1 ;
	    gbl.setConstraints(lblConCount, gbc) ;
	    panUp.add(lblConCount) ;
	    //
	    final JTextField txtConCount = new JTextField(10) ;
	    txtConCount.setText("1") ;
	    /*
	     *总结:关于String和int转换的时候一定注意的特殊情况:
	     *      最好要对String进行初始化,如果不这样做,在String-""的时候
	     *      将会发生转化异常!
	     */
	    gbc.gridx++ ;
	    gbc.gridy = 1;
	    gbc.gridwidth = 1 ;
	    gbc.gridheight = 1 ;
	    gbl.setConstraints(txtConCount, gbc) ;
	    panUp.add(txtConCount) ;
	    //
	    final JLabel lblPrice = new JLabel("估价", SwingConstants.CENTER) ;
	    gbc.gridx++ ;
	    gbc.gridy = 1;
	    gbc.gridwidth = 1 ;
	    gbc.gridheight = 1 ;
	    gbl.setConstraints(lblPrice, gbc) ;
	    panUp.add(lblPrice) ;
	    //
	    final JTextField txtPrice = new JTextField(10) ;
	    txtPrice.setText("0") ;
	    gbc.gridx++ ;
	    gbc.gridy = 1 ;
	    gbc.gridwidth = 1 ;
	    gbc.gridheight = 1 ;
	    gbl.setConstraints(txtPrice, gbc) ;
	    panUp.add(txtPrice) ;
	    //
	    final JLabel lblBeginTime = new JLabel("寄存日期") ;
	    gbc.gridx = 0 ;
	    gbc.gridy++  ;
	    gbc.gridwidth = 1 ;
	    gbc.gridheight = 1 ;
	    gbl.setConstraints(lblBeginTime, gbc) ;
	    panUp.add(lblBeginTime) ;
	    //
	    final JTextField txtBeginTime = new JTextField(10) ;
	    java.util.Date date = new java.util.Date() ;
	    long longValue = date.getTime() ;
	    java.sql.Date sqlDate = new java.sql.Date(longValue) ;
	    String strSqlDate = sqlDate.toString() ;
	    txtBeginTime.setText(strSqlDate) ;
	    txtBeginTime.setEditable(false) ;
	        	
	    gbc.gridx++ ;
	    gbc.gridy = gbc.gridy ;
	    gbc.gridwidth = 1 ;
	    gbc.gridheight = 1 ;
	    gbl.setConstraints(txtBeginTime, gbc) ;
	    panUp.add(txtBeginTime) ;
	    //
	    final JLabel lblPreTime = new JLabel("预计提取日期") ;
	    gbc.gridx++ ;
	    gbc.gridy = gbc.gridy ;
	    gbc.gridwidth = 1 ;
	    gbc.gridheight = 1 ;
	    gbl.setConstraints(lblPreTime, gbc) ;
	    panUp.add(lblPreTime) ;
	    //
	    final JTextField txtPreTime = new JTextField(10) ;
	    txtPreTime.addFocusListener(new FocusListener()
	        {
	        	public void focusGained(FocusEvent e)
	        	{
	        		txtPreTime.setText("年-月-日") ;
	        	}
	        	public void focusLost(FocusEvent ee)
	        	{
	        	}
	        }) ;
	    gbc.gridx++ ;
	    gbc.gridy = gbc.gridy ;
	    gbc.gridwidth = 1 ;
	    gbc.gridheight = 1 ;
	    gbl.setConstraints(txtPreTime, gbc) ;
	    panUp.add(txtPreTime) ;
	    /*
	     *GridBagLayout说明:
	     *只要规定了一个组件的gridwidth = 1;grideight =1 ;就说明站一个格子,不管这个组件有多大,
	     *都会放在里面的!那么这个布局的一个格子的表转就是这父
	     */
	    //
	    final JTextArea txeaDetails = new JTextArea(5, 38) ;//如果内部类用到的时候,那么外部变量
	    txeaDetails.setText("请在这里输入简要说明") ;                                                    //一定要是常量!
	    
	    //为txeaDetails添加FocusListener,这样当得到焦点的时候,那么就会selectAll(),
	    //如果不这样做,直接写上te.selectAll()这样是不可以的,必须让它得到焦点!
	    txeaDetails.addFocusListener(new FocusListener()
	       {
	           public void focusGained(FocusEvent e)
	           {
	           	   txeaDetails.selectAll() ;
	           }
	           public void focusLost(FocusEvent ee)
	           {
	           }
	       }) ;
	    
	    gbc.gridx = 0 ;
	    gbc.gridy++ ;
	    gbc.gridwidth = 4 ;
	    gbc.gridheight = 3 ;
	    gbl.setConstraints(txeaDetails, gbc) ;
	    panUp.add(txeaDetails) ;
	    gbc.gridwidth = 1 ;
	    gbc.gridheight = 1;
	    //
	    JButton btnCancel = new JButton("取消") ;
	    btnCancel.addActionListener(new ActionListener()
	        {
	        	public void actionPerformed(ActionEvent e)
	        	{
	        		frame.setVisible(false) ;
	        		frame.dispose() ;
	        	}
	        }) ;
	    gbc.fill = GridBagConstraints.BOTH ;
	    gbc.ipadx = 0 ;
	    gbc.ipady = -5 ;
	    gbc.gridx = 4 ;
	    gbc.gridy = 2 ;
	    gbc.gridwidth = 2 ;
	    gbc.gridheight = 2 ;
	    gbl.setConstraints(btnCancel, gbc) ;
	    panUp.add(btnCancel) ;
	    gbc.fill = GridBagConstraints.NONE ;
	    gbc.ipadx = 0 ;
	    gbc.ipady = 0 ;
	    //
	    final JButton btnConfirm = new JButton("确定") ;
	    btnConfirm.addActionListener(new ActionListener()
	        {
	        	public void actionPerformed(ActionEvent e)
	        	{
	        		String driver = "sun.jdbc.odbc.JdbcOdbcDriver" ;
		            String urlConsign = "jdbc:odbc:Hotel" ;
		            //注册数据库驱动程序!~
		            String strState = "未提取" ;
		            String consignNO = String.valueOf(consignNumber++) ;
		            String strTxtName = txtName.getText().trim() ;
		            String strSexSelected = (String)comboxSex.getSelectedItem() ;
		            String strPassword = txtPassword.getText().trim() ;
		            String strConName = txtConName.getText().trim() ;
		            int strConCount = Integer.parseInt((txtConCount.getText()).trim()) ;
		            int strPrice = Integer.parseInt(txtPrice.getText().trim()) ;
		            String strBeginTime = txtBeginTime.getText().trim() ;
		            String strEndTime = "未知" ;
					String strPreTime = txtPreTime.getText().trim() ;
					String strDetails = txeaDetails.getText().trim() ;
					//下面将对一些信息做验证!
		
					if(strTxtName.length() == 0 ||strPassword.length() == 0||
		   				strConName.length() == 0 ||txtConCount.getText().trim().length() == 0 ||
		   				txtPrice.getText().trim().length() == 0 ||strEndTime.length() == 0 )
					{
						JOptionPane.showMessageDialog(null, "请完整输入信息!") ;
						return ;
					}
					if(strDetails.length() > 50)
					{
						JOptionPane.showMessageDialog(null,"简要说明过长!") ;
					}
					/*
		 			*注意:在Java中中文字符和英文字符都是按照一个字符看待,所有
		 			*     System.out.println("1234567".length()) ;
		 			*     System.out.println("中华人民共和国".length()) ;
					 *     运行结果:7
		 			*               7
		 			*/
		 			int result = JOptionPane.showConfirmDialog(null, "确认要寄存此物品吗?", "信息", JOptionPane.YES_NO_OPTION) ;
		 			if(result == JOptionPane.YES_OPTION)
		 			{
		 			
					try
					{
						Class.forName(driver) ;
					}
					catch(Exception eee)
					{
						JOptionPane.showMessageDialog(null, eee.toString()) ;
					}
					//连接数据库并进行相关的操作!
		
					try
					{
						Connection con = DriverManager.getConnection(urlConsign) ;
						Statement  smt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                        			                         ResultSet.CONCUR_UPDATABLE);
            			               smt.executeUpdate("INSERT "+
			                                            "INTO table_Consign(寄存号码,寄存人姓名,性别,密码,寄存品名称,寄存件数,物品估价,寄存时间,提取时间,预计提取时间,简要说明,状态)"+
			                                            "VALUES("+"'"+consignNO+"',"+"'"+strTxtName+"',"+"'"+strSexSelected+"',"+"'"+strPassword+"',"+
			                                                   "'"+strConName+"',"+strConCount+","+
			                                                   +strPrice+","+"'"+strBeginTime+"',"+
			                                                   "'"+strEndTime+"',"+"'"+strPreTime+"',"+
			                                                   "'"+strDetails+"',"+"'"+strState+"')") ;
			            
			            frame.setVisible(false) ;
			            frame.dispose() ;
			            JOptionPane.showMessageDialog(null, "物品寄存成功!n\n尊敬的客户:\n    为便于您查询,请您记住您的寄存号码:"+(consignNumber-1)) ;
                                   
            
					}
					catch(SQLException eeeee)
					{
						System.out.println(eeeee.toString()) ;
					}
					//System.out.println("Now ConsignNumber:"+consignNumber) ;
					//System.out.println("Now Update The table_Consign_Nuber") ;
					///////////////////////////////////////////////////////////
					//更新寄存号码到寄存号码数据库!
					try
		            {
			            Connection con = DriverManager.getConnection("jdbc:odbc:Hotel") ;
			            Statement  smt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                        			                         ResultSet.CONCUR_UPDATABLE);
                        try
                        {
            	            ResultSet rst = smt.executeQuery("select * from table_Consign_Number") ;
            	            rst.absolute(1) ;
            	            rst.updateInt(1, consignNumber) ;
            	            rst.updateRow() ;
            	            System.out.println(consignNumber) ;
                
                        }
                        catch(SQLException hh)
                        {
            	            JOptionPane.showMessageDialog(null, "获取寄存号码时发生异常!") ;
                        }
		            }
		            catch(SQLException jj)
		            {
			            JOptionPane.showMessageDialog(null, "连接寄存号码数据库失败!") ;
		            }
		            ///更新寄存号码完毕!
		            //System.out.println("更新寄存号码成功!") ;	
					}//if( result = Confirm )结束!
					else
					    return ;
					//JOptionPane.showMessageDialog(null, ") ;
	        	}//处理函数结束!
	        }) ;//内部类结束!
	    gbc.fill = GridBagConstraints.BOTH ;
	    gbc.gridx = gbc.gridx  ;
	    gbc.gridy = gbc.gridy + 2  ;
	    gbc.gridwidth = 2 ;
	    gbc.gridheight = 2 ;
	    gbc.ipady = -5 ;
	    gbc.ipadx = 0 ;
	    gbl.setConstraints(btnConfirm, gbc) ;
	    panUp.add(btnConfirm) ;
	    gbc.fill = GridBagConstraints.NONE ;
	    gbc.ipadx = 0 ;
	    gbc.ipady = 0 ;
	    //
	    content.add(panUp, "Center") ;
		frame.pack() ;
		frame.setVisible(true) ;
		frame.setResizable(false) ;
		//界面已经设计完毕!下面进行一些数据库操作
		//载入寄存号码信息
		//注册数据库驱动程序
		try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
		}	
		catch(Exception h)
		{
			JOptionPane.showMessageDialog(null, "数据库驱动程序注册失败!") ;
		}
		//连接寄存号码数据库
		try
		{
			Connection con = DriverManager.getConnection("jdbc:odbc:Hotel") ;
			Statement  smt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                        			                         ResultSet.CONCUR_UPDATABLE);
            try
            {
            	ResultSet rst = smt.executeQuery("select * from table_Consign_Number") ;
            	rst.absolute(1) ;
            	consignNumber = rst.getInt(1) ;//获取最大的寄存序号!
            	//System.out.println(consignNumber) ;
                
            }
            catch(SQLException hh)
            {
            	JOptionPane.showMessageDialog(null, "获取寄存号码时发生异常!") ;
            }
		}
		catch(SQLException jj)
		{
			JOptionPane.showMessageDialog(null, "连接寄存号码数据库失败!") ;
		}	
		//JOptionPane.showMessageDialog(null, "获取寄存号码成功!") ;
		
	}
	
	public static void main(String args[])
	{
		new Consign() ;
	}
}

⌨️ 快捷键说明

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