📄 inputselectedlessoninfo.java~371~
字号:
if (temp1.equals(tempNumber)) {
strLessonName = temp2;
strLessonNumber = temp3;
strLessonNature = temp4;
break;
}
}
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
boolean haveSelectedThisSubject = false; //标记是否已选了jComboBox中选定的课程
for (int i = 0; i < haveSelected.length; i++) { //利用数组检查是否选择了某一门课程
if (strLessonName.equals(haveSelected[i])) {
haveSelectedThisSubject = true;
JOptionPane.showMessageDialog(this, "该同学已经选择了这门课程!", "注意!", 2);
break;
}
}
if (!haveSelectedThisSubject) { //将要选课程加入数组
for (int i = 0; i < haveSelected.length; i++) { //注意选课已满的情况!!
if (haveSelected[i] == null) {
haveSelected[i] = strLessonName;
haveSelectedScore[i] = strLessonNumber;
haveSelectedNature[i] = strLessonNature;
break;
}
}
inputOneSubject();
haveSelectedCount++;
jTextField_SelectedAll.setText(haveSelectedCount + "");
haveSelectedScoreAll += Integer.parseInt(strLessonNumber.trim());
jTextField_Score.setText(haveSelectedScoreAll + "");
JOptionPane.showMessageDialog(this, "这门课程成功录入!", "录入成功!", 2);
jComboBox_HaveSelected.setEnabled(true);
jComboBox_HaveSelected.removeAllItems();
for (int i = 0; i < haveSelected.length; i++) {
if (haveSelected[i] != null) {
jComboBox_HaveSelected.addItem(haveSelected[i]);
}
}
jButton_SelectedAllLookMore.setEnabled(true);
jButton_DeleteSelected.setEnabled(true);
haveSelectedThisSubject = false;
}
}
public void resetAll() { //dispose窗口以后以及点击继续以后执行的方法
for (int i = 0; i < haveSelected.length; i++) { //清空数组
haveSelected[i] = haveSelectedNature[i] = "";
haveSelectedScore[i] = haveSelectedResult[i] = "0";
}
haveSelectedCount = blankSubject = 0;
strNumber = strName = strStatus = strLessonNumber = strLessonName =
strLessonNature = "";
hasInput = canInputSelectedInfo = false;
// jComboBox_ScoreHad.removeAllItems();应该进一步完善!!!
jComboBox_ScoreHad.setEnabled(false);
jComboBox_HaveSelected.removeAllItems();
jComboBox_HaveSelected.setEnabled(false);
jComboBox_CanBeSelected.setSelectedIndex(0);
jTextField_SN.setEditable(true);
jTextField_SN.setText("");
jTextField_Name.setText("");
jTextField_Status.setText("");
jTextField_SelectedAll.setText("");
jTextField_Score.setText("");
jTextField_ScoreHad.setText("");
jTextField_CanBeSelected.setEditable(false);
jTextField_CanBeSelected.setText("");
jButton_SelectedAllLookMore.setEnabled(false);
jButton_DeleteSelected.setEnabled(false);
jButton_More.setEnabled(false);
jButton_InputOther.setEnabled(false);
}
public void deleteFromComboBox() {
strLessonName = jComboBox_HaveSelected.getSelectedItem().toString();
int deleteOrNot = JOptionPane.showConfirmDialog(this, "确定要删除该门已选课程?",
"删除已选课程?", 1);
if (deleteOrNot == 0) {
haveSelectedCount--;
deleteOneSubject();
jTextField_SelectedAll.setText(haveSelectedCount + "");
}
strLessonNumber = strLessonName = strLessonNature = "";
}
public void deleteOneSubject() { //删除一门课程时将后面的课程信息向前提的方法
//需要注意前移课程名称和学分的问题以及删除一门课程以后jTextField和jComboBox的内容要及时更新。
int shouldBeDeleted = -1; //考虑重置的位置和时机
for (int i = 0; i < haveSelected.length; i++) { //通过数组来确定需要删除的课程在表中的列号
if (strLessonName.equals(haveSelected[i])) {
shouldBeDeleted = i;
break;
}
}
if (shouldBeDeleted != -1) { //将需要删除的课程信息从数组中删除
shouldBeDeleted = -1; //将其重置
for (int i = 0; i < haveSelected.length; i++) { //将要删除的课程的学分从总学分中扣除
if (strLessonName.equals(haveSelected[i])
) {
haveSelectedScoreAll -=
Integer.parseInt(haveSelectedScore[i].trim());
jTextField_Score.setText(haveSelectedScoreAll + "");
break;
}
}
for (int i = 0; i < haveSelected.length; i++) {
if (strLessonName.equals(haveSelected[i])) {
while (true) {
if (i == haveSelected.length - 1) {
haveSelected[i] = null;
haveSelectedNature[i] = null;
haveSelectedScore[i] = "0";
haveSelectedResult[i] = "0";
break;
}
haveSelected[i] = haveSelected[i + 1];
haveSelectedNature[i] = haveSelectedNature[i + 1];
haveSelectedScore[i] = haveSelectedScore[i + 1];
haveSelectedResult[i] = haveSelectedResult[i + 1];
i++;
}
break;
}
}
}
try {
Statement stmt;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:db_STU",
"",
"");
stmt = con.createStatement();
String tempOrder = "update Result_Info set ";
for (int i = 0; i < haveSelected.length; i++) { //确定命令语句的循环
if (haveSelected[i] != null) {
tempOrder += "课程" + (i + 1) + "='" + haveSelected[i] +
"',属性" + (i + 1) + "='" + haveSelectedNature[i] +
"',学分" +
(i + 1) + "=" +
haveSelectedScore[i] + ",成绩" + (i + 1) + "=" +
haveSelectedResult[i] + ",";
} else {
tempOrder += "课程" + (i + 1) + "=null,属性" + (i + 1) +
"=null,学分" + (i + 1) +
"=0,成绩" + (i + 1) + "=0,";
}
}
tempOrder = tempOrder.substring(0, tempOrder.length() - 1) +
" where 学号='" + strNumber + "'";
stmt.executeUpdate(tempOrder);
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
//将JComboBox等新
jComboBox_HaveSelected.removeAllItems();
for (int i = 0; i < haveSelected.length; i++) {
if (haveSelected[i] != null) {
jComboBox_HaveSelected.addItem(haveSelected[i]);
}
}
if (jComboBox_HaveSelected.getItemCount() > 0) {
jComboBox_HaveSelected.setEnabled(true);
} else if (
jComboBox_HaveSelected.getItemCount() == 0) {
jComboBox_HaveSelected.addItem("尚未选定课程");
jComboBox_HaveSelected.setEnabled(false);
jButton_SelectedAllLookMore.setEnabled(false);
jButton_DeleteSelected.setEnabled(false);
}
JOptionPane.showMessageDialog(this, "已成功删除该课程记录。", "成功删除记录", 2);
}
public void inputFromComboBox() { //将JCombobox中选择的课程录入
strLessonName = jComboBox_CanBeSelected.getSelectedItem().toString();
try { //从数据库中得到与课程名称相匹配的学分信息
String temp1, temp2, temp3; //分别暂时保存课程名称,学分,课程性质
Statement stmt;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:db_STU",
"",
"");
stmt = con.createStatement();
rs = stmt.executeQuery("select * from LessonInfo");
while (rs.next()) {
temp1 = rs.getString(3); //名称
temp3 = rs.getString(4); //性质
temp2 = rs.getString(5); //学分
if (temp1.equals(strLessonName)) {
strLessonNumber = temp2;
strLessonNature = temp3;
break;
}
}
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
boolean haveSelectedThisSubject = false; //标记是否已选了jComboBox中选定的课程
for (int i = 0; i < haveSelected.length; i++) { //利用数组检查是否选择了某一门课程
if (strLessonName.equals(haveSelected[i])) {
haveSelectedThisSubject = true;
JOptionPane.showMessageDialog(this, "该同学已经选择了这门课程!", "注意!", 2);
break;
}
}
if (!haveSelectedThisSubject) { //将要选课程加入数组
for (int i = 0; i < haveSelected.length; i++) { //注意选课已满的情况!!
if (haveSelected[i] == null) {
haveSelected[i] = strLessonName;
haveSelectedScore[i] = strLessonNumber;
haveSelectedNature[i] = strLessonNature;
break;
}
}
inputOneSubject();
haveSelectedCount++;
jTextField_SelectedAll.setText(haveSelectedCount + "");
haveSelectedScoreAll += Integer.parseInt(strLessonNumber.trim());
jTextField_Score.setText(haveSelectedScoreAll + "");
JOptionPane.showMessageDialog(this, "这门课程成功录入!", "录入成功!", 2);
jComboBox_HaveSelected.setEnabled(true);
jButton_SelectedAllLookMore.setEnabled(true);
jButton_DeleteSelected.setEnabled(true);
haveSelectedThisSubject = false;
}
haveSelectedThisSubject = false; //重新置false
jComboBox_HaveSelected.removeAllItems();
for (int i = 0; i < haveSelected.length; i++) { //重置JComboBox
if (haveSelected[i] != null) {
jComboBox_HaveSelected.addItem(haveSelected[i]);
}
}
strLessonNumber = strLessonName = strLessonNature = ""; //录入结束,清空信息
}
public void getSelectedInfo() { //从Result_Info中获得已选的课程信息并输出在JComboBox中,保存在四个数组中
try {
Statement stmt;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:db_STU", "",
"");
stmt = con.createStatement();
rs = stmt.executeQuery("select 学号,课程1,课程2,课程3,课程4,课程5,课程6,课程7,课程8,课程9,课程10,课程11,课程12,课程13,课程14,课程15 from Result_Info");
while (rs.next()) {
if (rs.getString(1).equals(strNumber)) {
for (int i = 1; i <= 15; i++) {
String temp = rs.getString(i + 1);
if (temp != null) {
haveSelectedCount++;
jComboBox_HaveSelected.addItem(temp);
haveSelected[i - 1] = temp.trim(); //将已选课程记录入数组,但要注意数组的清空时机!!
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -