?? examjdialog.java
字號:
* @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 + -