?? 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);
}
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, "修改考試出錯?。?quot;);
}
}catch(Exception e)
{
//出現異常,提示修改出錯。
JOptionPane.showMessageDialog(this, "修改考試出錯?。?quot;);
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 + -