目 录
课程设计情况概述 I
目 录 II
第1章 课题介绍 1
1.1 课程设计的目的 1
1.2 课程设计的要求 1
第2章 总体设计 2
2.1 程序流程图 2
2.2 软件模块图 3
2.3 子模块介绍 3
第3章 详细设计及程序实现 5
3.1 系统界面设计 5
3.1.1 用户显示界面的设计 5
3.1.2类型选择界面的设计 5
3.1.3 打字输入界面的设计 7
3.2 主要组件的事件监听 8
3.2.1 用户显示界面的事件监听 8
3.2.2 类型选择界面的事件监听 9
3.2.3 打字输入界面的事件监听 10
第4章 程序测试 13
第5章 总 结 16
参考文献 18
答辩记录及评分 19
第2章 总体设计
2.1 程序流程图
程序启动后进入用户显示界面,输入用户名后可进入类型选择界面,设置完成后就进入打字模块,按任意键就进入打字练习并开始启动及计时线程进行计时及打字状态的显示。详细的程序流程图如图2-1所示:

图2-1 程序流程图
2.2 软件模块图
要实现对用户结果的记录,需要设置用户名及一些类型选择(如用户自定义文章和自定义时间),将此两点与最终的打字界面单独分割开,确定要设计三个界面模块,用户显示模块、类型选择模块、打字输入模块。软件模块如图2-2所示:

图2-2 软件模块图
2.3 子模块介绍
1、用户显示模块:此模块设计为一个卡片布局,将加入此模块的面板jp约束在中间,并在面板上添加控件。此模块可进行用户名的设置,默认以随机的游客身份进入。点击“提交”按钮后进入打字测速练习软件,点击“重置”按钮可重新输入用户名。
2、类型选择模块:此面板也是一个卡片布局,将jp面板约束在此面板的中间位置,在jp面板里面进行添加控件,jp面板的布局是网格布局,采用四行三列的形式。此模块可以选择测试类型、测试文章、测试时间,及是否选择从本地导入文章。测试类型有“英文练习”和“中文练习”两种选择,“中文练习”功能尚未实现。可通过测试文章的下拉列表选择已导入目录的文章,也可以点击导入文章进行本地导入文本文件作为测试文章。用户可自定义测试时间。之后点击“开始”按钮进入打字界面,开始进行打字测速练习。点击“重置”按钮所有选择返回默认状态用户可重新自定义。点击“返回”按钮返回之前的用户显示模块。
3、打字输入模块:此面板是边框形式布局,中间设计字符的显示与接受用户输入的文本框。此模块可以与用户进行交互,响应用户的输入。本文转载自http://www.biyezuopin.vip/onews.asp?id=15035进入打字模块后直接进行打字训练,按Enter回车键可进入下一行。练习的同时,界面上方的“速度”和“正确率”以秒为单位进行更新。并且有“剩余时间”来提醒用户剩余练习时间。根据用户输入的正确与否,字体显示不同的颜色。打字正确时显示绿色,错误则显示红色。按“暂停”按钮所有的文本框处于不可接受用户输入状态,此时“暂停”按钮将变成恢复按钮,等待用户返回继续练习。“文件”按钮包含“返回”和“退出”两个按钮,用户可分别进行返回上一届面和整体退出程序两个功能的选择。“设置”按钮可进行“重新开始”项的选择,用户之前测试结果被记录到文件的同时,所有的状态会恢复成新的界面。通过“查询”按钮则可以进行之前所有打字记录的查询,包括“用户名”、“速度”、“正确率”、“使用时间”、“测试时间”这五个数据。当点击“帮助”菜单栏里面的“帮助文档”项时,可以查看帮助文档,从而获得帮助提示。点击帮助文档中的“确定”按钮可返回练习。
这三个模块全部放在一个卡片布局的面板里,当用户点击各个按钮时,分别显示不同的模块界面。

import java.awt.CardLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;public class UserJPanel extends JPanel {TypingTest tt = null;// 产生1000到9999的随机数public int random = (int) (Math.random() * 9000) + 1000;public String userName;JLabel welcomJLabel, userNameJLabel;JTextField userNameJTextField;JButton submitJButton, resetJButton;public UserJPanel(TypingTest tt) {this.tt = tt;// 使显示框位于整个界面的中间位置CardLayout userCardLayout = new CardLayout(200, 150);this.setLayout(userCardLayout);JPanel jp = new JPanel(new GridLayout(3, 1));welcomJLabel = new JLabel("打字测速练习", SwingConstants.CENTER);welcomJLabel.setFont(new Font("宋体", Font.BOLD, 20));jp.add(welcomJLabel);JPanel jp1 = new JPanel(new FlowLayout(FlowLayout.CENTER));userNameJLabel = new JLabel("用户名:");userNameJTextField = new JTextField(12);userNameJTextField.setText("游客" + random);userNameJTextField.setToolTipText("默认以随机产生的游客登陆,可以设定用户名");jp1.add(userNameJLabel);jp1.add(userNameJTextField);jp.add(jp1);JPanel jp2 = new JPanel(new FlowLayout(FlowLayout.CENTER, 30, 0));submitJButton = new JButton("提交");resetJButton = new JButton("重置");jp2.add(submitJButton);jp2.add(resetJButton);jp.add(jp2);this.add(jp);setListenerForSubmitJButton();setListenerForResetJButton();}public void setListenerForSubmitJButton() {submitJButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (userNameJTextField.getText() != null&& !userNameJTextField.getText().trim().equals("")) {userName = userNameJTextField.getText();} else {JOptionPane.showMessageDialog(null, "你没有输入用户名,或用户名为空!","提示", JOptionPane.OK_OPTION);return;}SetJPanel setJPanel = new SetJPanel(UserJPanel.this);tt.mainJPanel.add("setJPanel", setJPanel);tt.cardLayout.show(tt.mainJPanel, "setJPanel");}});}public void setListenerForResetJButton() {resetJButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {random = (int) (Math.random() * 9000) + 1000;userNameJTextField.setText("游客" + random);}});}public void paint(Graphics g) {super.paint(g);g.drawRect(220, 150, 400, 300);// 重画,解决组件之间的相互影响repaint();}}













基于JavaGUI的中英文打字训练测试软件设计相关推荐

  1. 用java做打字训练测试软件,《打字训练测试软件-Java课程设计》.doc

    PAGE PAGE 3 <程序设计实践> 题目: 打字训练测试软件 学校:陕西工业学院 学院:信息学院 班级:信管12-2 学号: 201213156619 姓名:刘克豪 2014 年 1 ...

  2. java课程设计打字训练测试软件_打字训练测试软件-Java课程设计

    打字训练测试软件-Java课程设计 <程序设计实践>题目: 打字训练测试软件 学校:陕西工业学院 学院:信息学院 班级:信管 12-2 学号: 201213156619 姓名:刘克豪 20 ...

  3. java课程设计打字训练测试软件_Java版打字练习案例源码

    代码如下 import java.applet.Applet; import java.applet.AudioClip; import java.awt.Dimension; import java ...

  4. 测试打字速度测试程序c语言,打字速度测试软件

    打字速度测试软件是一款为测试打字速度而制作的一款打字速度测试的软件.应聘时需要测试打字速度时这款软件便派上了用场.只需首先将需要考试的人员姓名和考号录入数据库,考试时您无需记录,系统会将考号.姓名.考 ...

  5. 中文打字速度测试软件官网,中文打字速度测试软件

    使用该软件能够帮助用户测试自己的打字速度,阿宽中文打字速度测试软件专业的字数测试软件想知道自己打字速度水平赶快下载试试吧! 软件介绍: 中文打字速度测试软件是一款专业的用来测试打字速度的软件,软件安精 ...

  6. java毕业设计——基于java+Winpcap的局域网监听软件设计与实现(毕业论文+程序源码)——局域网监听软件

    基于java+Winpcap的局域网监听软件设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Winpcap的局域网监听软件设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  7. linux arm关闭光栅,基于Linux的光栅检测系统的软件设计与实现.pdf

    基于Linux的光栅检测系统的软件设计与实现.pdf - - - - - - - - - - 一 竣 应 ((_- 基 于 Linux 系 统 的 软 件 设 计 与 实 现 东北大学信息科学与工程学 ...

  8. java开发组态软件下载_基于JAVA的煤矿安全监控系统组态软件设计研究.pdf

    ·218· 工矿自动化 基于JAVA的煤矿安全监控系统组态软件设计 鲍毅华钢 (中国矿业大学信电学院 江苏徐州 221008) [摘要]本文通过对当前煤矿安全监控系统组态存在的问题和发展趋势的问题,提 ...

  9. 四、基于HTTPS协议的12306抢票软件设计与实现--水平DNS并发查询分享

    一.基于HTTPS协议的12306抢票软件设计与实现--实现效果  二.基于HTTPS协议的12306抢票软件设计与实现--相关接口以及数据格式 三.基于HTTPS协议的12306抢票软件设计与实现- ...

最新文章

  1. linux 装nano命令,linux下安装 nano 如果没有这个命令的话~~可以看下
  2. php判断绝对路径文件是否存在,php – 如何确定文件路径是否绝对?
  3. Linux学习-07-vim编辑器
  4. php 脚本会超时吗,PHP脚本执行超时的解决办法
  5. 北京市房山区卫星地图下载
  6. Android高手笔记-包体积优化
  7. Windows系统磁盘清理C盘扩容
  8. android webview 视频黑屏,webview 播放H5视频问题 黑屏 只有声音没有画面
  9. 证明碰撞集(HITTING SET)问题是NP完全问题
  10. 使用Lint检查提高代码质量
  11. 【老生谈算法】matlab实现自动画玫瑰程序源码——画玫瑰
  12. 算法创作|随机出10道题并计算正确率问题解决方法
  13. 机械设备远程实时监控方案
  14. python从入门到弃坑中子弹部分的问题
  15. 作为一名IT狗,天天加班,快变秃子了,我决定去植发……
  16. 混沌精英哈里斯鹰优化算法-附代码
  17. KUKA.WorkVisual仿真软件 下载分享
  18. Web应用程序设计十个建议
  19. 三极管放大电路的原理与识图技巧
  20. treegrid 与java交互_针对dhtmlX当中的treegrid在java类当中的封装实现的步骤(后台代码)...

热门文章

  1. 完全卸载软件及电脑软件残留
  2. 巨杉数据库5.0携手中信网科助推金融业创新发展
  3. Linux下驱动开发
  4. 使用lupdate生成Qt的ts翻译文件
  5. 一页纸需求的应对方法 —— 五步法
  6. CSDN 添加微信二维码
  7. 计算机应用课程的体会,计算机课程心得体会
  8. 干翻华为才有年终奖,“性感”小米发布MIX3,滑盖全面屏只要3299元
  9. Joda-Time 实战
  10. OSPF FA地址分析