📄 selectedlessoninfocheck.java~46~
字号:
package sos;
import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.awt.Rectangle;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SelectedLessonInfoCheck extends JDialog {
String[] haveSelected = new String[15]; //记录已选课程的课程名称
String[] haveSelectedScore = new String[15]; //记录已选课程的学分
String[] haveSelectedResult = new String[15]; //记录已选课程的成绩
String[] haveSelectedNature = new String[15]; //记录已选课程的性质
String strLessonNumber = "", strLessonName = "", strLessonNature = ""; //记录从推荐选课和号码选课获得的课程学分,课程名和课程属性
int haveSelectedScoreAll = 0;
int haveSelectedCount = 0;
boolean haveFound = false;
String strNumber = "", strName = "", strStatus = "";
// String strLessonName = "";
// String[] haveSelected = new String[15];
public SelectedLessonInfoCheck(Frame frame, boolean modal) {
super(frame, modal);
setTitle("选课信息查询");
setSize(410, 260);
setResizable(false);
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
setVisible(true);
}
private void jbInit() throws Exception {
this.getContentPane().setLayout(null);
jLabel_Prompt.setFont(new java.awt.Font("隶书", Font.BOLD | Font.ITALIC,
25));
jLabel_Prompt.setForeground(Color.blue);
jLabel_Prompt.setHorizontalAlignment(SwingConstants.CENTER);
jLabel_Prompt.setText("正在进行选课信息查询");
jLabel_Prompt.setBounds(new Rectangle(5, 3, 390, 33));
jLabel_SN.setFont(new java.awt.Font("华文新魏", Font.BOLD, 15));
jLabel_SN.setHorizontalAlignment(SwingConstants.CENTER);
jLabel_SN.setText("学号:");
jLabel_SN.setBounds(new Rectangle(3, 38, 39, 25));
jTextField_SN.setHorizontalAlignment(SwingConstants.CENTER);
jTextField_SN.setBounds(new Rectangle(44, 38, 88, 24));
jTextField_SN.addActionListener(new
SelectedLessonInfoCheck_jTextField_SN_actionAdapter(this));
jLabel_Name.setFont(new java.awt.Font("华文新魏", Font.BOLD, 15));
jLabel_Name.setHorizontalAlignment(SwingConstants.CENTER);
jLabel_Name.setText("姓名:");
jLabel_Name.setBounds(new Rectangle(132, 38, 39, 25));
jTextField_Name.setEditable(false);
jTextField_Name.setHorizontalAlignment(SwingConstants.CENTER);
jTextField_Name.setBounds(new Rectangle(171, 38, 61, 24));
jLabel_Status.setFont(new java.awt.Font("华文新魏", Font.BOLD, 15));
jLabel_Status.setHorizontalAlignment(SwingConstants.CENTER);
jLabel_Status.setText("在读:");
jLabel_Status.setBounds(new Rectangle(233, 38, 39, 25));
jTextField_Status.setEditable(false);
jTextField_Status.setHorizontalAlignment(SwingConstants.CENTER);
jTextField_Status.setBounds(new Rectangle(272, 38, 125, 23));
jLabel_HaveSelected.setFont(new java.awt.Font("华文新魏", Font.BOLD, 15));
jLabel_HaveSelected.setText("本学期已选课程:");
jLabel_HaveSelected.setBounds(new Rectangle(2, 68, 127, 33));
jComboBox_HaveSelected.setEnabled(false);
jComboBox_HaveSelected.setBounds(new Rectangle(131, 68, 251, 30));
jButton_LookMore.setBounds(new Rectangle(44, 104, 155, 28));
jButton_LookMore.setEnabled(false);
jButton_LookMore.setFont(new java.awt.Font("楷体_GB2312", Font.BOLD, 15));
jButton_LookMore.setText("查看选定课程");
jButton_LookMore.addActionListener(new
SelectedLessonInfoCheck_jButton_LookMore_actionAdapter(this));
jLabel_All.setFont(new java.awt.Font("华文新魏", Font.BOLD, 15));
jLabel_All.setText("本学期已选课程共计:");
jLabel_All.setBounds(new Rectangle(0, 137, 173, 33));
jTextField_All.setEditable(false);
jTextField_All.setText("15");
jTextField_All.setHorizontalAlignment(SwingConstants.CENTER);
jTextField_All.setBounds(new Rectangle(155, 141, 44, 23));
jLabel_Men.setFont(new java.awt.Font("华文新魏", Font.BOLD, 15));
jLabel_Men.setText("门");
jLabel_Men.setBounds(new Rectangle(206, 141, 24, 22));
jLabel_Score.setFont(new java.awt.Font("华文新魏", Font.BOLD, 15));
jLabel_Score.setHorizontalAlignment(SwingConstants.CENTER);
jLabel_Score.setText("学分:");
jLabel_Score.setBounds(new Rectangle(232, 141, 50, 22));
jButton_GoOn.setBounds(new Rectangle(44, 177, 154, 28));
jButton_GoOn.setEnabled(false);
jButton_GoOn.setFont(new java.awt.Font("楷体_GB2312", Font.BOLD, 15));
jButton_GoOn.setText("继续查询信息");
jButton_GoOn.addActionListener(new
SelectedLessonInfoCheck_jButton1_actionAdapter(this));
jButton_Cancel.setBounds(new Rectangle(207, 177, 155, 28));
jButton_Cancel.setFont(new java.awt.Font("楷体_GB2312", Font.BOLD, 15));
jButton_Cancel.setText("退出信息查询");
jButton_Cancel.addActionListener(new
SelectedLessonInfoCheck_jButton_Cancel_actionAdapter(this));
jComboBox_Score.setEnabled(false);
jComboBox_Score.setBounds(new Rectangle(279, 139, 118, 28));
jButton_Delete.setBounds(new Rectangle(207, 104, 155, 28));
jButton_Delete.setEnabled(false);
jButton_Delete.setFont(new java.awt.Font("楷体_GB2312", Font.BOLD, 15));
jButton_Delete.setText("删除选定课程");
jButton_Delete.addActionListener(new
SelectedLessonInfoCheck_jButton_Delete_actionAdapter(this));
this.getContentPane().add(jLabel_Prompt);
this.getContentPane().add(jLabel_SN);
this.getContentPane().add(jTextField_SN);
this.getContentPane().add(jLabel_Name);
this.getContentPane().add(jTextField_Name);
this.getContentPane().add(jLabel_Status);
this.getContentPane().add(jTextField_Status);
this.getContentPane().add(jLabel_HaveSelected);
this.getContentPane().add(jComboBox_HaveSelected);
this.getContentPane().add(jLabel_All);
this.getContentPane().add(jTextField_All);
this.getContentPane().add(jLabel_Men);
this.getContentPane().add(jLabel_Score);
this.getContentPane().add(jComboBox_Score);
this.getContentPane().add(jButton_Cancel);
this.getContentPane().add(jButton_GoOn);
this.getContentPane().add(jButton_LookMore);
this.getContentPane().add(jButton_Delete);
}
JLabel jLabel_Prompt = new JLabel();
JLabel jLabel_SN = new JLabel();
JTextField jTextField_SN = new JTextField();
JLabel jLabel_Name = new JLabel();
JTextField jTextField_Name = new JTextField();
JLabel jLabel_Status = new JLabel();
JTextField jTextField_Status = new JTextField();
JLabel jLabel_HaveSelected = new JLabel();
JComboBox jComboBox_HaveSelected = new JComboBox();
JButton jButton_LookMore = new JButton();
JLabel jLabel_All = new JLabel();
JTextField jTextField_All = new JTextField();
JLabel jLabel_Men = new JLabel();
JLabel jLabel_Score = new JLabel();
JButton jButton_GoOn = new JButton();
JButton jButton_Cancel = new JButton();
JComboBox jComboBox_Score = new JComboBox();
JButton jButton_Delete = new JButton();
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());
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);
}
JOptionPane.showMessageDialog(this, "已成功删除该课程记录。", "成功删除记录", 2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -