📄 web158_com.java
字号:
package web158.com;
/**
* @param 李建东
*
* 联系电话:0898-62925341
*
* 联系QQ:813751 657597 8912740
*
* 网 址:
* http://www.web156.com
* http://www.web158.com
*使用本源码,请保留版权信息,谢谢
*/
import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.net.*;
/********************************************************
* *
* 窗口类 *
* *
*********************************************************/
class web158_frame extends JFrame implements ActionListener
{
//加载软件皮肤
Web158_Com_Config web158_config=new Web158_Com_Config();
//软件皮肤Panel
web158_com_getSkin mainSkin=new web158_com_getSkin();
//字体
Font font = new Font("宋体",0,12);
//控制行
JPanel web158_com_ordermenu=new JPanel();
//左边Label
JLabel web158_com_left=new JLabel();
JLabel web158_space_1=new JLabel();
JLabel web158_space_2=new JLabel();
JLabel web158_space_3=new JLabel();
// 关闭窗口按钮
JButton web158_com_system=new JButton(" 最 小 化 ");
// 关闭窗口按钮
JButton web158_com_submit=new JButton("试卷提交");
//关闭窗口按钮
JButton web158_com_close=new JButton("关闭");
//主板排板
FlowLayout f_main=new FlowLayout();
//中间变动面板
JPanel web158_com_Cpanel=new JPanel();
//右边变动面板////////////////////////////////////////////////////////////////////////////////
JPanel web158_com_Rpanel=new JPanel();
//右边考生信息
// 考生信息顶站位
JPanel web158_r_space=new JPanel();
JPanel web158_stuinfo=new JPanel();
//姓名label
JLabel web158_stu_name=new JLabel();
//准考证号
JLabel web158_stu_id=new JLabel();
//所需要黑字体
Font web158_stuinfo_font=new Font("宋体",Font.BOLD,13);
//考生头象信息
web158_com_pic headpic=new web158_com_pic();
//头象下面
JPanel pic_panel =new JPanel();
//考生手则
JTextPane txtinfo=new JTextPane();
//计时器
Timer timer,closetimer;
int m,n;
//系统退出时间
Timer exitTimer;
int m1,n1;
//关闭窗口所用的时间
int c=60;
/*
*
* 底部板权
*
*/
JPanel web158_bottom=new JPanel();
JButton web158_com_copy=new JButton("关于本软件 网址:http://www.web158.com ");
// 中Label
JLabel web158_com_s_1=new JLabel();
//考生信息
JLabel web158_com_b_1=new JLabel();
//考试完的面板
JPanel examed=new JPanel();
JLabel examed_label=new JLabel();
// 加载取试题Panel
Web158_SGetQuestion qpanel;
//考试Panel
Web158_Com_Begin examPanel=new Web158_Com_Begin();
Web158_Com_Operate operatePanel=new Web158_Com_Operate();
//当前试题ID号
int nowexamid=1;
int totalchoose=0;
//启动服务器
ServerSocket ss;
Socket socket;
BufferedReader in;
PrintWriter out;
//全局变量
private String stuname="李建东";
private String stuid="2005010720";
//每选择题分数
private int prechoose=3;
//学生选择题成绩
private int score=0;
private String serverip="127.0.0.1";
//定义端口
private int sendport=10000;
private int receiveport=8852;
//类入口
web158_frame()
{
web158_config.initFont();
//计时器
timer=new Timer(1000,this);
closetimer=new Timer(10,this);
m=45;
n=59;
//
exitTimer=new Timer(1000,this);
m1=4;
n1=59;
//取试题Panel
qpanel=new Web158_SGetQuestion();
//文件没有加载失败
if(web158_config.web_158_config_ok()==true)
{
//空间
web158_space_1.setPreferredSize(new Dimension(13,30));
web158_space_2.setPreferredSize(new Dimension(30,30));
web158_space_3.setPreferredSize(new Dimension(30,30));
web158_com_ordermenu.add(web158_space_1);
//最小化按钮
web158_com_system.setBackground(Color.white);
web158_com_system.setFont(font);
web158_com_system.setCursor(new Cursor(Cursor.HAND_CURSOR));
web158_com_system.setBorder(null);
web158_com_system.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
//getExamPanel();
//timer.start();
}
});//end of actionPerformed
//添加系统按钮
web158_com_ordermenu.add(web158_com_system);
web158_com_ordermenu.add(web158_space_2);
//试卷提交按钮
web158_com_submit.setBackground(Color.white);
web158_com_submit.setFont(font);
web158_com_submit.setCursor(new Cursor(Cursor.HAND_CURSOR));
web158_com_submit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
sendAnswer();
}
});
web158_com_submit.setBorder(null);
web158_com_submit.setEnabled(false);
//添加系统按钮
web158_com_ordermenu.add(web158_com_submit);
web158_com_ordermenu.add(web158_space_3);
//添加时间面板
web158_com_left.setPreferredSize(new Dimension(530,35));
web158_com_left.setFont(font);
web158_com_left.setText("剩余时间: 还没有开始答题");
web158_com_ordermenu.add(web158_com_left);//添加到主面板
//关闭按钮
web158_com_close.setBackground(Color.white);
web158_com_close.setFont(font);
web158_com_close.setCursor(new Cursor(Cursor.HAND_CURSOR));
web158_com_close.setBorder(null);
//添加关闭按钮
web158_com_close.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
closetimer.start();
//System.exit(0);
}
});//end of actionPerformed
web158_com_ordermenu.add(web158_com_close);
//工具栏
web158_com_ordermenu.setPreferredSize(new Dimension(780,40));
web158_com_ordermenu.setOpaque(false);//透明
mainSkin.add(web158_com_ordermenu);//添加到主面板
//首次加载初始化登陆及配置面板
//Web158_SLogin s_login=new Web158_SLogin();
//web158_com_Cpanel.add(s_login);
//初始化
web158_info();
//变动面板
web158_com_Cpanel.setPreferredSize(new Dimension(520,510));
web158_com_Cpanel.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
web158_com_Cpanel.setOpaque(false);
web158_com_Cpanel.setLayout(f_main);
web158_com_Cpanel.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {}
});//end of frame.addMouseMotionListener()
//右边考生信息///////////////////////////////////////////////////////////////////////////////////////////////
//先添加头部空位
web158_r_space.setPreferredSize(new Dimension(215,10));
web158_r_space.setOpaque(false);
//添加
web158_com_Rpanel.add(web158_r_space);
//添加头象
headpic.setPreferredSize(new Dimension(120,150));
//headpic.setPicurl("2005010720.gif");
pic_panel.add(headpic);
//设置头象背景
pic_panel.setPreferredSize(new Dimension(210,160));
pic_panel.setOpaque(false);
web158_stuinfo.add(pic_panel);
//考生文字信息
web158_stuinfo.setPreferredSize(new Dimension(210,270));
web158_stuinfo.setBackground(Color.LIGHT_GRAY);
web158_stuinfo.setOpaque(false);
//考生姓名
//姓名面板
web158_stu_name.setPreferredSize(new Dimension(210,30));
web158_stu_name.setFont(web158_stuinfo_font);
web158_stu_name.setForeground(new Color(92,19,17));
web158_stu_name.setText("考生姓名:您还没有登陆");
web158_stuinfo.add(web158_stu_name);
//准考证号
web158_stu_id.setPreferredSize(new Dimension(210,30));
web158_stu_id.setFont(web158_stuinfo_font);
web158_stu_id.setForeground(new Color(92,19,17));
web158_stu_id.setText("准考证号:您还没有登陆");
web158_stuinfo.add(web158_stu_id);
//添加姓名考号面板
web158_com_Rpanel.add(web158_stuinfo);
//添加考试规则
final JScrollPane scrollPane = new JScrollPane();
scrollPane.setPreferredSize(new Dimension(200,200));
scrollPane.setBorder(null);
scrollPane.getHorizontalScrollBar().setUI(null);
web158_com_Rpanel.add(scrollPane);
//考生手则及提示信息区
//txtinfo.setBackground(new Color(207,207,157));
txtinfo.setEditable(false);
txtinfo.setFont(new Font("宋体",Font.PLAIN,13));
txtinfo.setText("注意事项:\n服务器地址:监考老师提供的考试服务器地址\n服务器端口:监考老师提供的服务器端口\n您的姓名:您的名字\n准考证号:您的准考证号。\n\n特别注意:\n每位考生只能领取一份试卷,领取成功后请不要在没有提交您的试卷或答题中退出系统,否则您将失去本次考试资格!");
scrollPane.setViewportView(txtinfo);
//添加右边面板
web158_com_Rpanel.setPreferredSize(new Dimension(215,510));
web158_com_Rpanel.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
web158_com_Rpanel.setOpaque(false);
web158_com_Rpanel.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {}
});//end of frame.addMouseMotionListener()
web158_com_Rpanel.setLayout(new FlowLayout(FlowLayout.LEFT));
mainSkin.add(web158_com_Cpanel);//添加到主面板
mainSkin.add(web158_com_Rpanel);//添加到主面板
//底部版权
web158_com_copy.setBackground(Color.white);
web158_com_copy.setFont(font);
web158_com_copy.setCursor(new Cursor(Cursor.HAND_CURSOR));
web158_com_copy.setBorder(null);
web158_com_copy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
if(web158_config.gotoWeb158_com()==false)
{
JOptionPane.showMessageDialog(null, "您的系统不支持直接打开!\n\n请您直接打开网站:http://www.web158.com\n\n联系QQ:813751 657597");
}
}
});//end of actionPerformed
web158_bottom.add(web158_com_copy);
//添加空格LABEL
web158_com_s_1.setPreferredSize(new Dimension(200,23));
web158_bottom.add(web158_com_s_1);
//添加考生信息
web158_com_b_1.setFont(font);
web158_com_b_1.setPreferredSize(new Dimension(250,23));
//考生信息
web158_com_b_1.setText(" 华夏网建在线考试系统-学生端");
web158_bottom.add(web158_com_b_1);
//底部主板
web158_bottom.setLayout(f_main);
web158_bottom.setPreferredSize(new Dimension(700,30));
web158_bottom.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
web158_bottom.setOpaque(false);
mainSkin.add(web158_bottom);//添加到主面板
//主面板大小
mainSkin.setSize(800,600);
mainSkin.setCursor(new Cursor(Cursor.HAND_CURSOR));
//f_main.setHgap(10);
mainSkin.setLayout(new FlowLayout());
//添加面板
add(mainSkin);
//窗口属性
//标题
setTitle("华夏网建在线考试系统-学生端");
//图标
setIconImage(Toolkit.getDefaultToolkit().createImage("web158_com_config/info.dll"));//设置图标
//无边
setUndecorated(true);
//大小
setSize(800,600);
//总在最前
//setAlwaysOnTop(true);
//可见
setVisible(true);
//如不加关闭窗口事件,只能不显示,可是进程没有关闭造成系统资源浪费!
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);//退出整个系统
}
});
//居中显示
web158_com_goCenter();
//有效
validate();
}
//文件加载失败
else
{
JOptionPane.showMessageDialog(null, "文件加载失败!请联系管理员");
return ;
}
}//end of web158_frame
//事件处理
public void actionPerformed(ActionEvent e)
{
Object event=e.getSource();
//分钟秒钟
String minutes=""+(m-1);
String seconds=""+n;
//系统退出所需
String minutes1=""+(m1-2);
String seconds1=""+n1;
if(event==timer)
{
n--;
web158_com_left.setText("剩余时间:"+minutes+"分钟"+seconds+"秒");
if(n<1)
{
n=59;
m--;
//System.out.println("m--后"+m);
seconds=""+n;
if(m-2<1)
{
timer.stop();
JOptionPane.showMessageDialog(null, "答题时间已经到了,请把您的操作题打包后提交答案!\n\n操作题所有文件需存在D:/myexam/exam文件夹中,存好请把exam文件夹打包并提交试卷!\n\n在3分钟内您如果还没有提交试卷,本次考试您将没有成绩!");
exitTimer.start();
}
}
}//end of timer
//系统退出时间
if(event==exitTimer)
{
n1--;
web158_com_left.setForeground(Color.red);
web158_com_left.setText("系统退出剩余时间:"+minutes1+"分钟"+seconds1+"秒");
if(n1<1)
{
n1=59;
m1--;
seconds1=""+n1;
//系统退出时间到自动退出系统
if(m1-1<1)
{
exitTimer.stop();
closetimer.start();
}
}
}//end of timer
if(event==closetimer)
{
//c--;
//this.setSize(this.getWidth(),this.getHeight()-10);
//if(c<0)
//{
System.exit(0);
//}
}
//
}//end of actionperofrmed
/********************************************************
* *
* 窗口居中显示 *
* *
*********************************************************/
void web158_com_goCenter()
{
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); //得到用户屏幕大小
Dimension frameSize=this.getSize(); //得到当前窗口大小 以上以定义:800*600
if(frameSize.width>screenSize.width)
{
frameSize.width=screenSize.width; //窗口长度大于屏幕时,令窗口长度等于屏幕长度
}
if(frameSize.height>screenSize.height) //与上同理,处理窗口高度
{
frameSize.height=screenSize.height; //窗口高度
}
this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);//居中显示
}//end of web158_com_goCenter()
/**************************************************************************************
*
* 选择题处理模块
*/
//答题
//题没有做选择
boolean isSelect()
{
if(!examPanel.A.isSelected()&&!examPanel.B.isSelected()&&!examPanel.C.isSelected()&&!examPanel.D.isSelected())
{
return false;
}
else
{
return true;
}
}
//保存选择的答案
protected String getNowAnswer()
{
String answer="";
if(examPanel.A.isSelected())
{
answer="A";
}
if(examPanel.B.isSelected())
{
answer="B";
}
if(examPanel.C.isSelected())
{
answer="C";
}
if(examPanel.D.isSelected())
{
answer="D";
}
return answer;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -