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

📄 selectsubjectframe.java

📁 java实现的c/s模式的考试系统.比较简单
💻 JAVA
字号:
package exam.gui;
/**
 * 选择科目界面
 * @author teacher
 *
 */

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.*;

import exam.dao.PaperDao;
import exam.model.Paper;
import exam.model.Question;
import exam.model.Student;

public class SelectSubjectFrame extends JFrame implements PaperDao{

	private JLabel jlw;
	private JLabel jls;
	private JComboBox jbx;
	private JButton jbs;
	private JButton jbe;
	private Student student;
	
	private Socket s;
	private PrintWriter pw;
	private ObjectInputStream ois;
	private String[] sbjs;

	
	public SelectSubjectFrame(Student student,Socket s,PrintWriter pw) {
		this.s = s;
		this.pw = pw;
		try {
			pw = new PrintWriter(s.getOutputStream());
		} catch (IOException e) {
			e.printStackTrace();
		}
		this.student = student;
		this.setTitle("选择考试科目");
		jlw = new JLabel(student.getName()+",欢迎进入考试系统");
		jls = new JLabel("请选择考试科目:");
		jbx = new JComboBox();
		sbjs = null;
		getSubjects();
		for(int i=0;i<sbjs.length;i++){
			jbx.addItem(sbjs[i].split("=")[0]);
		}
		jbs = new JButton("开始考试");
		jbe = new JButton("退出");
		
		init();
		addEventHandle();
	}
	
	public void init(){
		JPanel jp1 = new JPanel();
		jp1.add(jlw);
		
		JPanel jp2 = new JPanel();
		jp2.add(jls);
		jp2.add(jbx);
		
		JPanel jp3 = new JPanel();
		jp3.add(jbs);
		jp3.add(jbe);
		
		this.setLayout(new BorderLayout());
		this.add(jp1,BorderLayout.NORTH);
		this.add(jp2,BorderLayout.CENTER);
		this.add(jp3,BorderLayout.SOUTH);
	}
	
	private void getSubjects(){
		try {
			pw.println("%GET_SUBJECT%");
			pw.flush();
			ois = new ObjectInputStream(s.getInputStream());
			sbjs = ((String)ois.readObject()).split(":");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public void addEventHandle(){
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jbe.addActionListener(new ActionListener(){
			
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		jbs.addActionListener(new ActionListener(){
			
			public void actionPerformed(ActionEvent e) {
				
				new ExamMainFrame(student,getPaper(sbjs[jbx.getSelectedIndex()]),s,pw).showMe();
				System.out.println(sbjs[0]);
				SelectSubjectFrame.this.setVisible(false);
			}
		});
	}
	

	public Paper getPaper(String subject) {
		
		Paper paper = null;
		try {
			pw.println("%GET_PAPER%:" + subject);
			pw.flush();
			ois = new ObjectInputStream(s.getInputStream());
			paper = (Paper)ois.readObject();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
//		finally{
//			try {
//				ois.close();
//			} catch (IOException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
		return paper;
	}
	
	public void showMe(){
		this.setSize(240,180);
		this.setLocation(this.getToolkit().getScreenSize().width/2-this.getWidth()/2,this.getToolkit().getScreenSize().height/2-this.getHeight()/2); 
		this.setResizable(false);
		this.setVisible(true);
	}
	
//	public static void main(String[] args) {
//		String [] subject = {"corejava","c++"};
//		Student student = new Student(123,"zhansan");
//		try {
//			Socket s = new Socket("127.0.0.1",8888);
//			new SelectSubjectFrame(student,s,new PrintWriter(s.getOutputStream())).showMe();
//		} catch (UnknownHostException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		} catch (IOException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//	}
}

⌨️ 快捷键说明

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