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

📄 examjdialog.java

📁 学生管理系统。使用java编程
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	 * @return
	 */
	public String getTeacherName()
	{
		//从老师名文本框中获取老师姓名
		String teacherName = this.teacherNameTextField.getText().trim();
		if(teacherName.equals(""))//如为空则返回null
		{
			return null;
		}
		else //不为空,则返回teachername
			return teacherName;
	}
	/**
	 * 获取考试类型的方法
	 * @return
	 */
	public String getExamType()
	{
		//从考试类型下拉框中选择考试类型
		String examType =(String)this.examTypeComboBox.getSelectedItem();
		//如果是其中考试,则返回M
		if(examType.equals("期中考试"))
			return "M";
		//如果是期末考试,则返回F
		else if(examType.equals("期末考试"))
			return "F";
		else
			return null;
	}
	/**
	 * 从文本框中获取考试地点的方法
	 * @return
	 */
	public String getExamPlace()
	{
		//从考试地点文本框中获取考试地点
		String examPlace = this.examPlaceTextField.getText().trim();
		if(examPlace.equals(""))
		{
			return null;
		}
		else return examPlace;
	}
	/**
	 * 获取出席人数的方法
	 * @return
	 */
	public int getPresentNum()
	{
		//从考试人数文本框中获取考试人数。
		String presentNum = this.presentNumTextField.getText().trim();
		//正则表达式,用来判断人数是否合法
		String regex = "\\d{1,3}";
		if(presentNum.equals(""))//如果为空,返回0
		{
			return 0;
		}
		else //如果不为空,则判断是否合法 
		{
			if(presentNum.matches(regex))//如果合法,则转换为int类型返回
				return Integer.parseInt(presentNum);
			else return 0; //如果不合法,则返回0
		}
	}
	/**
	 * 获取备注的方法
	 * @return
	 */
	public String getRemark()
	{
		//从备注文本框中获取备注信息
		String remark = this.remarkTextArea.getText().trim();
		if(remark.equals(""))
			return null;
		else return remark;
	}
	/**
	 * 获取查询条件的方法
	 * @return
	 */
	
	public String getInput()
	{
		//从查询条件文本框中获取查询条件信息
		String input = this.inputTextField.getText().trim();
		if(input.equals(""))
			return null;
		else
			return input;

	}
	/**
	 * 退出按钮事件处理方法
	 * @param evt
	 */
	private void exitButtonActionPerformed(ActionEvent evt) {
		//退出
		this.dispose();
	}
	/**
	 * 通过课程名称获取课程号的方法
	 * @param CourseName 课程名
	 * @return 课程号
	 */
	public int getCourseId(String CourseName){
		try{
		Connection conn = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		int courseid=0;
		conn = conn = JdbcConnct.fetchConnection();
		String sql = "select courseid from course where coursename = ?";
		stmt = conn.prepareStatement(sql);
		stmt.setString(1,CourseName);
		rs = stmt.executeQuery();
		while(rs.next())
		{
			courseid = rs.getInt("courseid");
		}
		rs.close();
		stmt.close();
		conn.close();
		if(courseid == 0)
		{
			return 0;
		}
		else
     		return courseid;
		}catch(Exception e){
			e.printStackTrace();
			return 0;
		}
	}
	/**
	 * 通过老师名字获取老师工号的方法
	 * @param teacherName
	 * @return
	 */
	public int getTeacherId(String teacherName){
		try{
		Connection conn = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		int courseid=0;
		conn = conn = JdbcConnct.fetchConnection();
		String sql = "select teacherid from teacher where teachername = ?";
		stmt = conn.prepareStatement(sql);
		stmt.setString(1,teacherName);
		rs = stmt.executeQuery();
		while(rs.next())
		{
			courseid = rs.getInt(1);
		}
		rs.close();
		stmt.close();
		conn.close();
		if(courseid == 0)
		{
			return 0;
		}
		else
     		{return courseid;
     		}
		
		}catch(Exception e){
			e.printStackTrace();
			return 0;
		}
	}
	/**
	 * 获取考试日期
	 * @return
	 */
	public String getDate()
	{
		//从考试日期文本框中获取考试日期
		String date = this.dateTextField.getText().trim();
		if(date.equals(""))
			return null;
		else return date;
	}
	/**
	 * 添加按钮事件处理方法
	 * @param evt
	 */
	private void addButtonActionPerformed(ActionEvent evt) {
		//定义向量,用来存储输入的信息
		Vector vecData = new Vector();
		 //通过课程名称,获得课程号
		int courseId = getCourseId(getCourseName());
		 //通过老师名称获取老师工号
		int teacherId = getTeacherId(getTeacherName());
		//获取开始时间
		String beginTime = getBeginTime();
		//获取结束时间
		String endTime = getEndTime();
		//获取考试日期
		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 begintime = Float.parseFloat(begin);
		        float endtime = Float.parseFloat(end);
		        //如果开始时间大于结束时间,提示出错。
		        if(begintime>=endtime)
		        {
		        	JOptionPane.showMessageDialog(this, "结束时间必须在开始时间之后!!");
		        }
		        else //如果开始时间小于结束时间则执行增加操作
		        {
					try
					{
						//定义连接 
						Connection conn = null;
						//定义statement
						Statement stmt = null;
						//获得一个连接 
						conn = JdbcConnct.fetchConnection();
						//增加考试的sql语句
						String sql = "insert into exam(courseid," +
								"teacherid,begintime,endtime,examplace," +
								"examtype,presentnum,remark)" +
								" values(" +
								courseId+"," +
								teacherId+"," +
								"to_date('"+date+" "+beginTime+"','yyyy-mm-dd hh24:mi:ss')," +
								"to_date('"+date+" "+endTime+"','yyyy-mm-dd hh24:mi:ss'),'" +
								getExamPlace()+"','" +
								getExamType()+"',"+getPresentNum()+",'"+getRemark()+"')";
						
			
						//创建一个statement
						stmt = conn.createStatement();
						//执行增加操作
						int updateLine = stmt.executeUpdate(sql);
						//把输入的数据存放到向量中
						vecData.addElement(getCourseName());
						vecData.addElement(getBeginTime());
						vecData.addElement(getEndTime());
						vecData.addElement(getExamPlace());
						vecData.addElement(getTeacherName());
						vecData.addElement(getPresentNum());
						
						if(updateLine!=0)
						{
							//在表格中显示添加的信息
							examTableModel.addRow(vecData);
							//提示增加考试成功
							JOptionPane.showMessageDialog(this, "添加考试成功!!");
							//清空
							clear();
						}
						else
						{
							//如果没有增加成功,提示出错。
							JOptionPane.showMessageDialog(this, "添加考试出错!!");
						}
			
					}catch(Exception e)
					{
						e.printStackTrace();
						//如果增加出现异常,提示输入出错。
						JOptionPane.showMessageDialog(this, "输入错误,请重新输入");
					}
		        }
		 }
		 else if(courseId==0)//如果couserid为0,提示课程不存在
		 {
			 JOptionPane.showMessageDialog(this, "没有该课程!!");
		 }
		 else if(teacherId==0)//如果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, "结束时间输入错误,时间格式为10:00!!");
		 }
		 else if(presentNum == 0)//人数输入不合法,提示出错
		 {
			 JOptionPane.showMessageDialog(this, "考试人数输入错误,请输入正确的数字0~999");
		 }
		

	}
	/**
	 * 获取考试流水号
	 * @return
	 */
//	public int getExamId(){
//		//从表格中获取
//		int row = this.examTable.getSelectedRow();
//		int examid = 0;
//		if(row!=-1)
//		{
//			String courseName = (String) this.examTable.getValueAt(row,0);
//			String beginTime = (String)this.examTable.getValueAt(row,1);
//			String endTime = (String)this.examTable.getValueAt(row,2);
//			String examPlace =(String)this.examTable.getValueAt(row,3);
//			String Teacher = (String)this.examTable.getValueAt(row,4);
//			String examPlac=null;
//			if(null==beginTime)
//				{
//						beginTime = " is null";
//				}
//			else 
//			{
//				beginTime ="='"+beginTime+"'";
//			}
//			if(null==endTime)
//			{
//				endTime = " is null";
//			}
//			else 
//			{
//				endTime ="='"+endTime+"'";
//			}
//			if(null==examPlace)
//			{
//				examPlac = "is null";
//			}
//			else
//			{
//				examPlac = "='"+examPlace+"'";
//			}
//			if(null==Teacher)
//			{
//				Teacher = "is null";
//			}
//			else
//			{
//				System.out.println(Teacher);
//				Teacher = "="+getTeacherId(Teacher);
//			}
//			 try {
//				Connection conn =null;
//				String sql = "select examid from exam where " +
//						" courseid="+getCourseId(courseName)+
//					//" and teacherid = "+getTeacherId(Teacher)+
//						" and  examplace "+examPlac+
//						" and to_char(beginTime,'yyyy-mm-dd hh24:mi:ss')" +beginTime +
//						" and to_char(endTime,'yyyy-mm-dd hh24:mi:ss')" +endTime+
//						" and teacherid "+Teacher;
//		        conn = JdbcConnct.fetchConnection();
//		        System.out.println(conn);
//				Statement stmt = conn.createStatement();
//			    ResultSet rs = stmt.executeQuery(sql);
//				while(rs.next())
//				{
//					examid = rs.getInt(1);
//				}
//				if(examid == 0)
//					return 0;
//				else return examid;
//			} catch (Exception e) 
//			{
//				e.printStackTrace();
//				return 0;
//			}
//
//		}
//		else 
//		{
//			JOptionPane.showMessageDialog(this, "没有选定行!!");
//			return 0;
//		}
//	}
	/**
	 * 清空方法
	 *
	 */
	public void clear()
	{
		//清空日期文本框
		this.dateTextField.setText("");
		//清空科目名称文本框 
		this.examIdTextField.setText("");
		//清空考试地点文本框
		this.examPlaceTextField.setText("");
		//清空开始时间文本框
		this.beginTimeTextField.setText("");
		//清空结束时间文本框
		this.endTimeTextField.setText("");
		//清空出席人数文本框 
		this.presentNumTextField.setText("");
		//清空备注文本框
		this.remarkTextArea.setText("");
		//清空老师名文本框
		this.teacherNameTextField.setText("");
	}
	/**
	 * 初始化表格方法
	 * @param sql
	 */
	public void initialTable(String sql)
	{
		//定义可变长的向量,来存储表里查询出的结果集
		Vector temp = new Vector();
		//定义连接
		Connection conn = null;
		//定义Statement
		Statement stmt = null;
		//定义结果集
		ResultSet rs =null;		
		try {
			//获取一个连接
			conn = JdbcConnct.fetchConnection();
			//查询SQL语句
			String sql1 = "select examid,coursename," +
					"to_char(begintime,'yyyy-mm-dd hh24:mi:ss') begintime," +
					"to_char(endtime,'yyyy-mm-dd hh24:mi:ss') endtime," +
					"examplace,teachername,presentnum,remark from exam_course_teacher"+sql;
			//创建一个Statement
			stmt = conn.createStatement();
			//得到一个结果集	
			rs = stmt.executeQuery(sql1);
			//对结果集的操作	
			while(rs.next())
			{
				//把结果集中的数据存放到向量中
				temp.addElement((String)rs.getString("examid"));
				temp.addElement((String)rs.getString("coursename"));
				String qbeginTime =rs.getString("begintime");
				qbeginTime = qbeginTime.substring(0, 16);
				String qendTime =rs.getString("endtime");
				qendTime = qendTime.substring(0, 16);
				temp.addElement(qbeginTime);
				temp.addElement(qendTime);
				temp.addElement((String)rs.getString("examplace"));
				temp.addElement((String)rs.getString("teachername"));
				temp.addElement((String)rs.getString("presentnum"));
				temp.addElement((String)rs.getString("remark"));
					
				}
				//让查询出来的数据在表格中显示
				 int row = temp.size()/8;
				 if(row!=0){
				 String [] title=new String[]{"考试号","科目","开始时间","结束时间","地点","监考老师","参考人数","备注"};
				 String[][] aa = new String [row][8] ;
				
				 for(int i=0;i<row;i++)
				 {
					for(int k=0;k<8;k++)
					{
						aa[i][k] = (String)temp.elementAt(i*8+k);
					}
				 }
				 
	      	    dataModel = new DefaultTableModel(aa,title){
	      	    	/**
	      	    	 * 重写DefaultTableModel里的方法,设置表格不可编辑。
	      	    	 */
	      			 public boolean isCellEditable(int row, int column)
	      			 {
	      				 return false;
	      			 }
	      		 };
				examTable.setModel(dataModel);
				examTable.setRowHeight(20);
				 }
				 else{
					 // 查询的数据不存在,提示查询出错。
					 JOptionPane.showMessageDialog(this, "要查找的数据不存在");
				 }
			} catch (SQLException e)
			{
				//如果出现异常,提示查询出错
				JOptionPane.showMessageDialog(this, "查询出错!");
			}

	}

⌨️ 快捷键说明

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