今天为大家分享一个java 编写的在线考试系统,目前系统功能已经完善,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步
开发环境
开发语言为Java,开发环境Eclipse或者IDEA都可以。数据库采用:MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。
系统框架
利用JDK自带的SWING框架开发,不需要安装第三方JAR包。MySQL数据库,纯窗体模式,直接运行Main文件即可以
主要功能
本次分享的为Java编写的窗体版本程序--在线考试系统,其主要目的是能对大学生在日常学习过程的知识进行有效的测试,通过系统了解大学生对课程知识的掌握程度,以便老师更好的有针对性的进行教学调整。其主要功能如下:
1 用户通过用户名和密码,登陆到在线考试系统中。同时也可以点退出按钮,退出在线考试系统
2 查看考试须知:学生在成功登陆到考试系统后,点击考试须知,可以查看到本次考试的要求和考试纪律等信息。
3 参与在线考试:学生点击在线考试按钮,开始考试。考试的过程从逐个题目开始作答,每个题目有对应的分数,答对获取相应的分数;打错该题得0分。答完所有题目后,点击交卷,完成本次考试。
4 查看考试成绩:学生点击主界面上得查看成绩,可以查看到本次考试得成绩。
5 退出系统。学生点击退出按钮,退出整个应用程序。
这个项目涵盖了java 窗体编程的各种知识,包括UI界面设计、时间处理、数据库操作、事件处理操作等。通过这个项目能快速提升java 窗体编程,是非常好一个有价值的的项目。代码可以直接运行,没有任何bug。
运行效果
1 用户登陆
2 主界面
3 考试规则查看
4 开始考试
5 查看考试结果
关键代码
package com.tarena.elts.ui;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.tarena.elts.entity.User;
//import com.tarena.elts.util.Config;
/** 主菜单界面 */
public class MenuFrame extends JFrame {
private static final long serialVersionUID = -1796834130339697339L;
private ClientContext clientContext;
public void setClientContext(ClientContext clientContext) {
this.clientContext = clientContext;
}
public MenuFrame() {
init();
}
/** 初始化界面组件和布局 */
private void init() {//
setLocationRelativeTo(null);
this.setTitle("西北大学在线考试系统");
// JPanel contentPane = createContentPane();
// this.setContentPane(contentPane);
this.setContentPane(createContentPane());
this.setSize(600, 400);
//this.setVisible(true);
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
//e.getOldState();//e 以前的状态
clientContext.exit(MenuFrame.this);
}
});
}
private JPanel createContentPane() {
JPanel p = new JPanel(new BorderLayout());
ImageIcon ico = new ImageIcon(this.getClass().getResource("title.png"));
// MunuFrame.class.getResource("title.png");
// p.setBorder(new EmptyBorder(8,8,8,8));
p.add(BorderLayout.NORTH, new JLabel(ico));
p.add(BorderLayout.CENTER, createCenterPane());
p.add(BorderLayout.SOUTH,
new JLabel("www.bangxiecode.com 版权所有", JLabel.RIGHT));
return p;
}
private JPanel createCenterPane() {
JPanel p = new JPanel(new BorderLayout());
// 务必将info 引用到界面控件对象
//p.add(BorderLayout.NORTH, new JLabel("欢迎:聂云云 同学", JLabel.CENTER));
info = new JLabel("欢迎:XXX 同学你好!",JLabel.CENTER);
p.add(BorderLayout.NORTH,info);
p.add(BorderLayout.CENTER, createBtnPane());
return p;
}
private JPanel createBtnPane() {
JPanel p = new JPanel(new FlowLayout());
JButton start = createImgBtn("exam.png", "开始");
JButton result = createImgBtn("result.png", "考试成绩");
JButton msg = createImgBtn("message.png", "考试规则");
JButton exit = createImgBtn("exit.png", "离开");
getRootPane().setDefaultButton(start);//回车的默认按钮
p.add(start);
p.add(result);
p.add(msg);
p.add(exit);
start.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
clientContext.start();
}
});
exit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//System.out.println("clsi");
clientContext.exit(MenuFrame.this);
}
});
result.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//e 代表发生了什么
//long clickTime = e.getWhen();//获得事情发生时间
clientContext.result();
}
});
msg.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
clientContext.msg();
}
});
return p;
}
/** 创建图片按钮的方法 */
private JButton createImgBtn(String img, String txt) {
ImageIcon ico = new ImageIcon(this.getClass().getResource(img));
JButton button = new JButton(txt, ico);
//button.setIcon(ico);
//垂直文本对齐位置
button.setVerticalTextPosition(JButton.BOTTOM);
//水平文本对齐位置
button.setHorizontalTextPosition(JButton.CENTER);
return button;
}
private JLabel info;
public void updateView(User user) {
info.setText("你好: "+user+" 小童鞋,欢迎进入考试系统 ");
}
}