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

📄 searchframe.java

📁 本光盘包含了本书各章中出现的所有程序的源代码。 1. 如果是Java程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				createFrame.dispose();
			}
			    //创建并进入新建模块
				createFrame=new CreateFrame(this);
                
		}
		//点击"删除"按钮
		if(e.getActionCommand().equals("删除")){
			//若没有在查询功能界面中输入学号,不允许进入删除界面
			if(idText.getText().equals("")){
				//未输入学号的提示信息
				String message="删除时学号不能为空";
				//显示提示框,提示用户
				JOptionPane.showMessageDialog(this, message);
			}
			else{
				db=new DBUnit();
				//获得该学号学生记录的ResultSet对象
				ResultSet rs=db.getOneStudent(idText.getText()); 
				try{
					if(rs.next()){
						//将该学生信息保存在一个Student对象中
						student=new Student();
						setStudent(student,rs);
						db.closeConnection();
						//若已打开一个删除界面,关闭该界面
						if(deleteFrame!=null){
							deleteFrame.dispose();
						}
						//新建并进入新的删除模块
						deleteFrame=new DeleteFrame(student,this);
						
				    }
					else{
						db.closeConnection();
						//没有该条记录的提示信息
						String message1="没有符合条件的学生信息可以删除";
						//显示提示框,提示用户
						JOptionPane.showMessageDialog(this, message1);
					}
					
				}catch(SQLException ex){
					System.out.println(ex.getMessage());
		        	ex.printStackTrace();
				}
				
			}
			
			
		}
		//点击"修改"按钮
		if(e.getActionCommand().equals("修改")){
			if(idText.getText().equals("")){
				//需输入学号的提示信息
				String message="修改时学号不能为空";
				//显示提示框,提示用户
				JOptionPane.showMessageDialog(this, message);
			}
			else{
				db=new DBUnit();
				//获得该学号学生记录的ResultSet对象
				ResultSet rs=db.getOneStudent(idText.getText()); 
				try{
					if(rs.next()){
						//将该学生信息保存在一个Student对象中
						student=new Student();
						setStudent(student,rs);
						db.closeConnection();
						//若已打开一个修改界面,关闭该界面
						if(changeFrame!=null){
							changeFrame.dispose();
						}
						//新建并进入修改模块
						changeFrame=new ChangeFrame(student,this);
						
				    }
					else{
						db.closeConnection();
						//没有该学生信息记录的提示信息
						String message1="没有符合条件的学生信息可以修改";
						//显示提示框,提示用户
						JOptionPane.showMessageDialog(this, message1);
					}
					
				}catch(SQLException ex){
					System.out.println(ex.getMessage());
		        	ex.printStackTrace();
				}
			}
		}
		//点击"查询"按钮
		if(e.getActionCommand().equals("查询")){
			//获得支持模糊查询的SQL语句
			String sql=getQuerySQL();
			db=new DBUnit();
			//获得查询后的结果集
			ResultSet rs=db.sqlQuery(sql);
			//若没有符合条件的记录,清空输入的查询条件
		    if(rs==null){
		    	clear();
		    	//没有查询到符合条件的学生的提示
		    	String message="没有符合条件的学生信息";
		    	//显示提示框,提示用户
				JOptionPane.showMessageDialog(this,message);
		    	return;
		    }else{
		    	try{
		    	  if(rs.next()==false){
		    		  clear();
		    		  //没有查询到符合条件的学生的提示
		    		  String message="没有符合条件的学生信息";
		    		  //显示提示框,提示用户
					  JOptionPane.showMessageDialog(this, message);
				      return;
		    	  }else{
		    		  //还原ResultSet的游标
		    		  rs.previous();
		    	  }
		    	}catch(SQLException ex){
		        	System.out.println(ex.getMessage());
		        	ex.printStackTrace();
		        }
		    }
		    //将查询记录以Student对象的形式放入查询结果Vector
			try{
				students=new Vector();
				Student st;
				while(rs.next()){
					st=new Student();
					setStudent(st,rs);
					students.add(st);
				}
			}catch(SQLException ex){
	        	System.out.println(ex.getMessage());
	        	ex.printStackTrace();
	        }
			db.closeConnection();
		    //更新查询界面
		    addComponents();
		    //获得代表第一个查询记录的Student对象
		    student=(Student)students.get(0);
		    //将该对象中的学生信息显示在查询功能界面中
			setStudentInformation(student);
			//将修改和删除按钮设置为可用	
			changeButton.setEnabled(true);			
			deleteButton.setEnabled(true);
			
			
		}
		
	}

	//更新查询界面
	private void addComponents() {
		// TODO 自动生成方法存根
		contentPane.removeAll();
		MyTable mt=new MyTable(students);
		jTable=new JTable(mt);
		selectionMode=jTable.getSelectionModel();
		selectionMode.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
	    selectionMode.addListSelectionListener(this);
        jScrollPane=new JScrollPane(jTable);
		
		jSplitPane=new JSplitPane(JSplitPane.VERTICAL_SPLIT,false,jPanel1,jScrollPane);
		jSplitPane.setDividerLocation(400);
		jSplitPane.setOneTouchExpandable(true);
		jSplitPane.setDividerSize(5);
		contentPane.add(jSplitPane);
		this.setTitle("查询界面");
		this.setVisible(true);
		setResizable(false);
		pack();
	}
	
	//新建学生信息后,更新查询界面
	public void afterCreate(Student st){
		if(students==null){
			students=new Vector();
		}
		students.add(st);
		addComponents();
		setStudentInformation(st);
		changeButton.setEnabled(true);			
		deleteButton.setEnabled(true);
	}
	
	//删除学生信息后,更新查询界面
	public void afterDelete(){
		students.remove(selected);
		addComponents();
		if(students.isEmpty()){
			clear();
		}else{
			setStudentInformation((Student)students.get(0));
		}
		selected=0;
	}
	
	//修改学生信息后,更新查询界面
	public void afterChange(Student st){
		students.remove(selected);
		students.add(selected, st);
		addComponents();
		setStudentInformation(st);
		selected=0;
	}
	
	//将Student对象包含的学生信息显示在查询功能界面的相应位置上
	private void setStudentInformation(Student st){
		idText.setText(st.getID().toString());
		nameText.setText(st.getName());
		ganderText.setText(st.getGander());
		majorText.setText(st.getMajor());
		gradeText.setText(st.getGrade());
		addressText.setText(st.getAddress());
		telephoneText.setText(st.getTelephone());
		
	}

	//捕捉ListSelectionEvent事件后的处理逻辑
	public void valueChanged(ListSelectionEvent e) {
		// TODO 自动生成方法存根
		selected=jTable.getSelectedRow();
		Student st=(Student)students.get(selected);
		setStudentInformation(st);
	}
	
    //获得支持模糊查询的SQL语句
	private String getQuerySQL(){
		String[] general={"%","%","%","%","%","%","%"};
		if(!idText.getText().equals("")){
			general[0]="%"+idText.getText()+"%";
		}
		if(!nameText.getText().equals("")){
			general[1]="%"+nameText.getText()+"%";
		}
		if(!ganderText.getText().equals("")){
			general[2]="%"+ganderText.getText()+"%";
		}
		if(!majorText.getText().equals("")){
			general[3]="%"+majorText.getText()+"%";
		}
		if(!gradeText.getText().equals("")){
			general[4]="%"+gradeText.getText()+"%";
		}
		if(!addressText.getText().equals("")){
			general[5]="%"+addressText.getText()+"%";
		}
		if(!telephoneText.getText().equals("")){
			general[6]="%"+telephoneText.getText()+"%";
		}
		
		String query="select * from Students_Information where id like'"+general[0]+"' and name like '"+general[1]+"' and gander like '"+general[2]+"' and major like '"+general[3]+"' and grade like '"+general[4]+"' and address like '"+general[5]+"' and telephone like '"+general[6]+"' order by id";
	    return query;
	}

	

}

⌨️ 快捷键说明

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