⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addquestion.java

📁 accp s1毕业项目 考试管理系统
💻 JAVA
字号:
package com.exam.ui.teacher;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import com.exam.db.bean.Course;
import com.exam.db.bean.Question;
import com.exam.db.dao.CourseDao;
import com.exam.db.dao.QuestionDao;
import com.exam.ui.SuperFrame;

public class AddQuestion extends SuperFrame {
	private static final long serialVersionUID = 1L;
	private String teaID;

	public AddQuestion(String teaID) {
		try {
			this.teaID = teaID;
			init();
			this.setVisible(true);
			this.setResizable(false);
			this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void init() {
		this.setTitle("添加试题");
		this.setSize(600, 450);
		this.setCenter();

		JPanel pnlTotal = new JPanel();
		this.getContentPane().add(pnlTotal);
		pnlTotal.setLayout(null);

		JLabel lblCouID = new JLabel("科目");
		lblCouID.setBounds(60, 20, 40, 25);
		pnlTotal.add(lblCouID);

		final JComboBox cboCouID = new JComboBox();
		cboCouID.setMaximumRowCount(5);
		cboCouID.addItem("");
		cboCouID.setBounds(100, 20, 150, 25);
		pnlTotal.add(cboCouID);

		Course course = null;
		CourseDao courseDao = new CourseDao();
		List<Course> list = new ArrayList<Course>();
		list = courseDao.selectAllCourse();
		for (int i = 0; i < list.size(); i++) {
			course = new Course();
			course = list.get(i);
			String str = course.getGrade() + "-" + course.getCouName();
			cboCouID.addItem(str);
		}

		JLabel lblQueType = new JLabel("类型");
		lblQueType.setBounds(270, 20, 40, 25);
		pnlTotal.add(lblQueType);

		final JComboBox cboQueType = new JComboBox();
		cboQueType.setBounds(310, 20, 100, 25);
		cboQueType.setMaximumRowCount(5);
		cboQueType.addItem("选择题");
		cboQueType.addItem("判断题");
		cboQueType.addItem("填空题");
		pnlTotal.add(cboQueType);

		JLabel lblMark = new JLabel("分值");
		lblMark.setBounds(430, 20, 40, 25);
		pnlTotal.add(lblMark);

		final JTextField txtMark = new JTextField("5");
		txtMark.setBounds(470, 20, 50, 25);
		txtMark.setEditable(false);
		pnlTotal.add(txtMark);
		
		JLabel lblQuestion = new JLabel("题目:");
		lblQuestion.setBounds(60, 60, 40, 25);
		pnlTotal.add(lblQuestion);

		final JTextArea txaQuestion = new JTextArea();
		txaQuestion.setLineWrap(true);
		JScrollPane scpQuestion = new JScrollPane(txaQuestion);
		scpQuestion.setBounds(100, 60, 420, 60);
		pnlTotal.add(scpQuestion);

		JLabel lblAnswerA = new JLabel("答案A:");
		lblAnswerA.setBounds(60, 135, 40, 25);
		pnlTotal.add(lblAnswerA);

		final JTextArea txaAnswerA = new JTextArea();
		txaAnswerA.setLineWrap(true);
		JScrollPane scpAnswerA = new JScrollPane(txaAnswerA);
		scpAnswerA.setBounds(100, 135, 420, 25);
		pnlTotal.add(scpAnswerA);

		JLabel lblAnswerB = new JLabel("答案B:");
		lblAnswerB.setBounds(60, 170, 40, 25);
		pnlTotal.add(lblAnswerB);

		final JTextArea txaAnswerB = new JTextArea();
		txaAnswerB.setLineWrap(true);
		JScrollPane scpAnswerB = new JScrollPane(txaAnswerB);
		scpAnswerB.setBounds(100, 170, 420, 25);
		pnlTotal.add(scpAnswerB);

		JLabel lblAnswerC = new JLabel("答案C:");
		lblAnswerC.setBounds(60, 205, 40, 25);
		pnlTotal.add(lblAnswerC);

		final JTextArea txaAnswerC = new JTextArea();
		txaAnswerC.setLineWrap(true);
		JScrollPane scpAnswerC = new JScrollPane(txaAnswerC);
		scpAnswerC.setBounds(100, 205, 420, 25);
		pnlTotal.add(scpAnswerC);

		JLabel lblAnswerD = new JLabel("答案D:");
		lblAnswerD.setBounds(60, 240, 40, 25);
		pnlTotal.add(lblAnswerD);

		final JTextArea txaAnswerD = new JTextArea();
		txaAnswerD.setLineWrap(true);
		JScrollPane scpAnswerD = new JScrollPane(txaAnswerD);
		scpAnswerD.setBounds(100, 240, 420, 25);
		pnlTotal.add(scpAnswerD);

		JLabel lblRightAnswer = new JLabel("正确答案:");
		lblRightAnswer.setBounds(60, 300, 80, 25);
		pnlTotal.add(lblRightAnswer);

		final ButtonGroup btgRightAnswer = new ButtonGroup();
		final JRadioButton radAnswerA = new JRadioButton(" A");
		radAnswerA.setBounds(150, 300, 60, 25);
		final JRadioButton radAnswerB = new JRadioButton(" B");
		radAnswerB.setBounds(220, 300, 60, 25);
		final JRadioButton radAnswerC = new JRadioButton(" C");
		radAnswerC.setBounds(290, 300, 60, 25);
		final JRadioButton radAnswerD = new JRadioButton(" D");
		radAnswerD.setBounds(360, 300, 60, 25);
		final JRadioButton radAnswerE = new JRadioButton("E");
		radAnswerE.setBounds(430, 300, 60, 25);
		radAnswerE.setVisible(false);
		btgRightAnswer.add(radAnswerA);
		btgRightAnswer.add(radAnswerB);
		btgRightAnswer.add(radAnswerC);
		btgRightAnswer.add(radAnswerD);
		btgRightAnswer.add(radAnswerE);
		pnlTotal.add(radAnswerA);
		pnlTotal.add(radAnswerB);
		pnlTotal.add(radAnswerC);
		pnlTotal.add(radAnswerD);
		pnlTotal.add(radAnswerE);
	
		JButton btnSave = new JButton("保存");
		btnSave.setBounds(180, 350, 60, 25);
		pnlTotal.add(btnSave);

		JButton btnReset = new JButton("重置");
		btnReset.setBounds(300, 350, 60, 25);
		pnlTotal.add(btnReset);

		cboQueType.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				String str = (String) cboQueType.getSelectedItem();
				if (str.equals("判断题")) {
					txaAnswerA.setText("正确");
					txaAnswerB.setText("错误");
					txaQuestion.setText("");
					txaAnswerA.setEditable(false);
					txaAnswerB.setEditable(false);
					txaAnswerB.setVisible(true);
					txaAnswerC.setVisible(false);
					txaAnswerD.setVisible(false);
					radAnswerB.setVisible(true);
					radAnswerC.setVisible(false);
					radAnswerD.setVisible(false);
					radAnswerE.setSelected(true);
				} else if (str.equals("选择题")) {
					txaAnswerA.setText("");
					txaAnswerB.setText("");
					txaQuestion.setText("");
					txaAnswerA.setEditable(true);
					txaAnswerB.setEditable(true);
					txaAnswerB.setVisible(true);
					txaAnswerC.setVisible(true);
					txaAnswerD.setVisible(true);
					radAnswerB.setVisible(true);
					radAnswerC.setVisible(true);
					radAnswerD.setVisible(true);
					radAnswerE.setSelected(true);
				} else if (str.equals("填空题")) {
					txaAnswerA.setText("");
					txaQuestion.setText("");
					txaAnswerA.setEditable(true);
					txaAnswerB.setVisible(false);
					txaAnswerC.setVisible(false);
					txaAnswerD.setVisible(false);
					radAnswerA.setSelected(true);
					radAnswerB.setVisible(false);
					radAnswerC.setVisible(false);
					radAnswerD.setVisible(false);
				}
			}
		});

		btnSave.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				String queType = "";
				String questionName = "";
				String rightAnswer = "";
				String answerA = "";
				String answerB = "";
				String answerC = "";
				String answerD = "";				
				int mark = Integer.parseInt(txtMark.getText());
				String courseName = cboCouID.getSelectedItem().toString()
						.trim().substring(3);
				if (courseName.equals("")) {
					JOptionPane.showMessageDialog(null, "请选择试题科目!");
					return;
				}
				queType = (String) cboQueType.getSelectedItem();
				questionName = txaQuestion.getText();
				if (questionName.equals("")) {
					JOptionPane.showMessageDialog(null, "请输入题目!");
					txaQuestion.requestFocus();
					return;
				}
				answerA = txaAnswerA.getText().trim();
				answerB = txaAnswerB.getText().trim();
				answerC = txaAnswerC.getText().trim();
				answerD = txaAnswerD.getText().trim();

				if (queType.equals("选择题")) {
					if (answerA.equals("") || answerB.equals("")
							|| answerC.equals("") || answerD.equals("")) {
						JOptionPane.showMessageDialog(null, "请输入备选答案");
						return;
					}
					if (answerA.equals(answerB) || answerA.equals(answerC)
							|| answerA.equals(answerD)
							|| answerB.equals(answerC)
							|| answerB.equals(answerD)
							|| answerC.equals(answerD)) {
						JOptionPane.showMessageDialog(null, "有相同答案!请重新输入!",
								"错误", JOptionPane.ERROR_MESSAGE);
						return;
					}
				} else if (queType.equals("填空题")) {
					if (answerA.equals("")) {
						JOptionPane.showMessageDialog(null, "请输入备选答案");
						return;
					}
				}
				if (radAnswerA.isSelected()) {
					rightAnswer = answerA;
				} else if (radAnswerB.isSelected()) {
					rightAnswer = answerB;
				} else if (radAnswerC.isSelected()) {
					rightAnswer = answerC;
				} else if (radAnswerD.isSelected()) {
					rightAnswer = answerD;
				} else {
					JOptionPane.showMessageDialog(null, "请选择正确答案!", "提示",
							JOptionPane.INFORMATION_MESSAGE);
					return;
				}
				Course course = new Course();
				CourseDao courseDao = new CourseDao();
				course = courseDao.selectCourseIDByName(courseName);
				int couID = course.getCouID();		
				String answerAll = "";
				if (queType.equals("选择题")) {
					answerAll = answerA + "@@" + answerB + "@@" + answerC
							+ "@@" + answerD;
				} else if (queType.equals("判断题")) {
					answerAll = answerA + "@@" + answerB;
				} else {
					answerAll = answerA;
				}
				QuestionDao questionDao = new QuestionDao();
				Question question = new Question();
				question.setCouID(couID);
				question.setQueType(queType);
				question.setAnswer(answerAll);
				question.setQuestion(questionName);
				question.setMark(mark);
				question.setRightAnswer(rightAnswer);
				question.setTeaID(teaID);
				int result = 0;
				result = questionDao.insertQuestion(question);				
				if (result == 1) {
					JOptionPane.showMessageDialog(null, "保存成功!");
					dispose();
				} else {
					JOptionPane.showMessageDialog(null, "保存失败!");
				}
			}
		});
		btnReset.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				cboCouID.setSelectedIndex(0);
				cboQueType.setSelectedIndex(0);
				txtMark.setText("5");
				txaQuestion.setText("");
				txaAnswerA.setText("");
				txaAnswerB.setText("");
				txaAnswerC.setText("");
				txaAnswerD.setText("");
				radAnswerE.setSelected(true);
			}
		});
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -