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

📄 examjdialog.java

📁 学生管理系统。使用java编程
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	/**
	 * 查询按钮响应方法
	 * @param evt
	 */
	private void querButtonActionPerformed(ActionEvent evt) {
		String choice = this.termComboBox.getSelectedItem().toString().trim();
		
		boolean flag = this.misCheckBox.isSelected();
		String input = getInput();
		String complet = (String)this.comComboBox.getSelectedItem();
		System.out.println(complet);
		if(flag == false)
		{
			if(choice.equals("全部"))
			{
				String sql = " order by examid asc";
				initialTable(sql);
			}
			else if(choice.equals("科目"))
			{	
				String sql = " where coursename = '"+input+"'";
				initialTable(sql);
			}
			else if(choice.equals("考试号"))
			{	if(complet.equals("大于"))
				{
				String sql = " where examid > '"+input+"'";
				initialTable(sql);
				}
			 	else if(complet.equals("等于"))
			 	{
					String sql = " where examid = '"+input+"'";
					initialTable(sql);
			 	}
			 	else
			 	{
					String sql = " where examid < '"+input+"'";
					initialTable(sql);
			 	}
			}
			else if(choice.equals("考试日期"))
			{	
				if(complet.equals("大于"))
				{
				String sql = " where begintime > to_date('"+""+input+"','yyyy-mm-dd')";
				initialTable(sql);
				}
			 	else if(complet.equals("等于"))
			 	{
					String sql = " where begintime = to_date('"+""+input+"','yyyy-mm-dd')";
					initialTable(sql);
			 	}
			 	else
			 	{
					String sql = " where begintime < to_date('"+""+input+"','yyyy-mm-dd')";
					initialTable(sql);
			 	}
			}
			else if(choice.equals("开考时间"))
			{	
				if(complet.equals("大于"))
				{
				String sql = " where begintime > to_date('"+""+input+"','hh24:mi:ss')";
				initialTable(sql);
				}
			 	else if(complet.equals("等于"))
			 	{
					String sql = " where begintime = to_date('"+""+input+"','yyyy-mm-dd')";
					initialTable(sql);
			 	}
			 	else
			 	{
					String sql = " where begintime < to_date('"+""+input+"','yyyy-mm-dd')";
					initialTable(sql);
			 	}
			}
			else if(choice.equals("结束时间"))
			{	
				String sql = " where coursename = '"+input+"'";
				initialTable(sql);
			}
			else if(choice.equals("考试性质"))
			{	
				String sql = " where coursename = '"+input+"'";
				initialTable(sql);
			}
			else if(choice.equals("监考老师"))
			{	
				String sql = " where teachername = '"+input+"'";
				initialTable(sql);
			}
		}	
		else
		{
			if(choice.equals("科目"))
			{	
				String sql = " where coursename like '%"+input+"%'";
				initialTable(sql);
			}
			else if(choice.equals("考试号"))
			{	
				String sql = " where examid like '%"+input+"%'";
				initialTable(sql);
			}
			else if(choice.equals("监考老师"))
			{	
				String sql = " where teachername like '%"+input+"%'";
				initialTable(sql);
			}
		}
	}
	
	/**
	 * 查询条件comboBox响应方法
	 * @param evt
	 */
	private void termComboBoxActionPerformed(ActionEvent evt) {
		//获取查询条件下拉框被选择的数据
		String select = (String) this.termComboBox.getSelectedItem();
		if(select.equals("全部"))//如果选择的是全部
		{
			//设置查询匹配条件下拉框不可选
			this.comComboBox.setEnabled(false);
			//设置输入对话框不可操作
			this.inputTextField.setEnabled(false);
			//设置模糊查询选项不可操作,且设置没有选定
			this.misCheckBox.setEnabled(false);
			this.misCheckBox.setSelected(false);
			//设置文本框输出
			this.inputTextField.setText("\u8bf7\u8f93\u5165\u67e5\u8be2\u6761\u4ef6");
		}
		else{
			//如果是其他的选择项
			//设置查询文本框可以编辑
			this.inputTextField.setEnabled(true);
			//模糊查询可以被选定
			this.misCheckBox.setEnabled(true);
			//清空查询文本框
			this.inputTextField.setText("");
		}
		//如果选择的是考试号/考试日期/开考时间/结束时间
		if(select.equals("考试号")||select.equals("考试日期")||select.equals("开考时间")||select.equals("结束时间"))
		{
			//模糊查询是否被选择
			boolean flag = this.misCheckBox.isSelected();
			if(flag == true)//如果被选择
				this.comComboBox.setEnabled(false);//设置查询匹配条件下拉框不可操作
			else//如果没有被选
				this.comComboBox.setEnabled(true);//设置查询匹配条件下拉框可以操作
			
		}
		else
			this.comComboBox.setEnabled(false);
	}
	/**
	 * 删除方法
	 * @param evt
	 */
	private void deleteButtonActionPerformed(ActionEvent evt) {
		//获取选定的表格的行数
		int row = this.examTable.getSelectedRow();
		//定义一个询问对话框的数据
		int resultDelete = JOptionPane.showConfirmDialog(this, "确定要删除此条记录吗?", "删除确定框", 
				 JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
		if(row!=-1)//判断是否选定,如果选定则继续
		{
			if(resultDelete==JOptionPane.YES_OPTION)//如果选择的是确定,则执行删除操作
			{
				//从表格中获取考试的编号
				String examId = (String) this.examTable.getValueAt(row,0);
	
				 try {
					 //定义连接
					Connection conn =null;
					//删除的sql语句
					String sql = "delete from exam where examid = " +examId;
					//获取一个连接
			        conn = JdbcConnct.fetchConnection();
			        //创建一个statement
					Statement stmt = conn.createStatement();
					//执行删除的操作
					int updateLine = stmt.executeUpdate(sql);
					//判断是否删除成功 
					if(updateLine!=0)
					{
						//如果删除成功,在表格中删除行
						dataModel.removeRow(row);
						examTable.setModel(dataModel);
						examTable.setRowHeight(20);
						//提示删除成功
						JOptionPane.showMessageDialog(this, "删除考试成功!!");
					}
					else
					{
						//如果没有删除成功,提示删除出错
						JOptionPane.showMessageDialog(this, "删除考试出错!");
					}
				} catch (Exception e) 
				{
					//如果出现异常,提示删除出错
					JOptionPane.showMessageDialog(this, "删除考试出错!");
					e.printStackTrace();
				}
			}
			else
			{
				//如果选则的是否时,则返回。
				return;
			}

		}
		else 
		{
//			如果没有选定行,则提示没有选定
			JOptionPane.showMessageDialog(this, "没有选定行!!");
		}
	}
	/**
	 * 设置按钮不可操作
	 *
	 */
	public void buttonEditFalse()
	{
		//设置修改按钮不可以操作
		this.commitButton.setEnabled(false);
		//设置查询按钮不可以操作
		this.querButton.setEnabled(false);
		//设置添加按钮不可以操作
		this.addButton.setEnabled(false);
		//设置删除按钮不可以操作
		this.deleteButton.setEnabled(false);
		this.comComboBox.setEnabled(false);
	}
	/**
	 * 设置按钮可操作
	 *
	 */
	public void buttonEditTrue()
	{
		//设置修改按钮可以操作
		this.commitButton.setEnabled(true);
		//设置查询按钮可以操作
		this.querButton.setEnabled(true);
		//设置添加按钮可以操作
		this.addButton.setEnabled(true);
		//设置删除按钮可以操作
		this.deleteButton.setEnabled(true);
		
		this.comComboBox.setEnabled(true);
	}
	
	String examid = null;
	private JPanel showtablePanel1;
	private JSeparator hSeparator1;
	private JComboBox comComboBox;
	int row=0;
	/**
	 * 修改按钮响应方法
	 * @param evt
	 */
	private void commitButtonActionPerformed(ActionEvent evt) {
		row = this.examTable.getSelectedRow();//获取选定表格的行
		if(row !=-1)//判断是否选定行
		{
			//设置按钮不可操作
			buttonEditFalse();
			//从表格中获取考试号
			examid = (String)this.examTable.getValueAt(row,0);
			//从表格中获取课程名称
			String courseName = (String) this.examTable.getValueAt(row,1);
			//从表格中获取开始时间
			String beginTime = (String)this.examTable.getValueAt(row,2);
			//从表格中获取结束时间
			String endTime = (String)this.examTable.getValueAt(row,3);
			//从表格中获取考试地点 
			String examPlace =(String)this.examTable.getValueAt(row,4);
			//定义日期
			String date = null;
			//定义开始时间
			String beginsubTime =null;
			//定义结束时间
			String endsubTime =null;
			if(null!=beginTime){
				//获取考试日期
			   date = beginTime.substring(0, 10);
			   //获取考试开始时间
			   beginsubTime= beginTime.substring(11);
			}
			if(null!=endTime)
			{
				//获取考试结束时间
				 endsubTime = endTime.substring(11);
			}
			//从表格中获取老师的名字
			String teacher = (String)this.examTable.getValueAt(row,5);
			//从表格中获取人数
			String presentNum = (String)this.examTable.getValueAt(row, 6);
			//从表格中获取备注信息
			String remark = (String)this.examTable.getValueAt(row, 7);
			//在课程名文本框中显示课程名
			this.examIdTextField.setText(courseName);
			//在老师名文本框中显示老师名
			this.teacherNameTextField.setText(teacher);
			//在人数文本框中显示人数
			this.presentNumTextField.setText(presentNum);
			//在日期文本框中显示日期
			this.dateTextField.setText(date);
			//在开始时间文本框中显示开始时间
			this.beginTimeTextField.setText(beginsubTime);
			//在结束时间文本框中显示结束时间
			this.endTimeTextField.setText(endsubTime);
			//在备注文本框中显示备注信息
			this.remarkTextArea.setText(remark);
			//在考试地点文本框中显示考试地点信息
			this.examPlaceTextField.setText(examPlace);
		}
		else 
		{
			//没有选定行,提示没有选定考试。
			JOptionPane.showMessageDialog(this, "没有选定考试");
		}
		
	}
	/**
	 * 提交按钮响应方法
	 * @param evt
	 */
	private void submitButtonActionPerformed(ActionEvent evt) {
		//如果选定行,则可以继续操作
		if(row !=-1)
		{
			//获取课程名称
			String coursename = getCourseName();
			//获取老师名称
			String teachername = getTeacherName();
			//获取开始时间
			String begintime = getBeginTime();
			//获取结束时间
			String endtime = getEndTime();
			//获取备注信息
			String remark1 = getRemark();
			//获取考试地点信息
			String place = getExamPlace();
			//获取考试类型信息
			String type = getExamType();
			//获取课程号
			int courseId = getCourseId(coursename);
			//获取老师工号
			int teacherId = getTeacherId(teachername);
			//获取考试日期日期 
			String date = getDate();
			//获取考试人数
			int presentNum = getPresentNum();
			//判断输入是否合法
			if(courseId!=0&&teacherId!=0&&null!=date&&null!=begintime&&null!=endtime&&presentNum!=0)
			{
				//把时间字符串转换为数字,从而可以比较大小
				String begin = begintime.replace(':', '.');
				String end = endtime.replace(':', '.');
		        float cbegintime = Float.parseFloat(begin);
		        float cendtime = Float.parseFloat(end);
		       // 比较开始时间和结束时间
		        if(cbegintime>=cendtime)
		        {
		        	//开始时间大于结束时间,则提示出现错误
		        	JOptionPane.showMessageDialog(this, "结束时间必须在开始时间之后!!");
		        }
		        else//如果开始时间小于结束时间,则修改考试。
		        {
					try
					{
						//获取数据库连接 
						Connection conn = JdbcConnct.fetchConnection();
						//建立statement
						Statement stmt = conn.createStatement();
						//修改考试的sql语句
						String sql = "update exam set courseid=" + courseId+
						",teacherid ="+teacherId+
						",begintime ="+
						"to_date('"+getDate()+" "+begintime +"','yyyy-mm-dd hh24:mi:ss')"+
						",endtime =" + 
						"to_date('"+getDate()+" "+endtime+"','yyyy-mm-dd hh24:mi:ss')"+
						",examplace ='" +place+
						"',examtype = '"+ type+"',presentnum = "+presentNum+
						",remark = " +"'"+remark1+"'"
						+" where examid = "+examid;
						//执行修改考试
						int updateLine = stmt.executeUpdate(sql);
						//判断是否修改成功
						if(updateLine!=0){
							//修改成功,提示修改成功
							JOptionPane.showMessageDialog(this, "修改考试成功!!");
							//清空
							clear();
							//设置按钮可以操作 
							this.buttonEditTrue();
						}
						else{
							//修改不成功,提示修改出错
							JOptionPane.showMessageDialog(this, "修改考试出错!!");
						}
						
						
					}catch(Exception e)
					{
						//出现异常,提示修改出错。
						JOptionPane.showMessageDialog(this, "修改考试出错!!");
						e.printStackTrace();
					}
		        }
		}else if(courseId==0)
		 {
			//如果课程不存在,提示课程不存在 
			 JOptionPane.showMessageDialog(this, "没有该课程!!");
		 }
		 else if(teacherId==0) 
		 {
			 //如果老师 不存在,提示老师不存在
			 JOptionPane.showMessageDialog(this, "老师不存在!!");
		 }
		 else if(null==date)
		 {
			 //如果日期为空,则提示日期为空
			 JOptionPane.showMessageDialog(this, "日期不能为空!!");
		 }
		 else if(null==begintime)
		 {
			 //考试开始时间输入不合法,提示开始时间输入错误,并提示输入正确的时间。
			 JOptionPane.showMessageDialog(this, "开始时间输入错误,时间格式为10:00!!");
		 }
		 else if(null==endtime)
		 {
			 //考试结束时间输入不合法,提示结束时间输入错误,并提示输入正确的时间。
			 JOptionPane.showMessageDialog(this, "结束时间输入错误,时间格式为12:00!!");
		 }
		 else if(presentNum == 0)
		 {
			 //考试人数输入不合法,提示出错,并提示输入正确的数字
			 JOptionPane.showMessageDialog(this, "考试人数输入错误,请输入正确的数字0~999");
		 }
	
		}
	else //否则提示没有选定行。
	{
		JOptionPane.showMessageDialog(this, "没有选定并修改考试。");
	}
	}
	/**
	 * 日期文本框操作事件,弹出日历对话框,并返回日期。
	 * @param evt
	 */
	private void dateTextFieldMouseClicked(MouseEvent evt) {
		//实例化日历类对象
		CalendarJDialog  calenderDialog = new CalendarJDialog(null);
		calenderDialog.setModal(true);
		calenderDialog.setVisible(true);
		//获取日期
		this.dateTextField.setText(calenderDialog.toString());
	}
	/**
	 * 实现模糊和精确查询时候的下拉框的是否可以操作
	 * @param evt
	 */
	private void misCheckBoxActionPerformed(ActionEvent evt) {
		//获取下拉框的数据
		String select = (String) this.termComboBox.getSelectedItem();
		//判断是否是考试号/考试号/开考时间
		if(select.equals("考试号")||select.equals("考试号")||select.equals("开考时间")||select.equals("结束时间"))
		{
			//是否模糊查询
			boolean flag = this.misCheckBox.isSelected();
			if(flag == true)//是,就设置下拉框不可操作
				this.comComboBox.setEnabled(false);
			else //不是,则设置下拉框可以操作
				this.comComboBox.setEnabled(true);
			
		}
		else// 如果不是上述的选项,设置下拉框不可以操作。
			this.comComboBox.setEnabled(false);
	}
}

⌨️ 快捷键说明

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