?? 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 + -