📄 examjdialog.java
字号:
/**
* 查询按钮响应方法
* @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 + -