java课程设计报告--打字游戏

合集下载

用Java制作一个简单的打字游戏

用Java制作一个简单的打字游戏

用Java制作一个简单的打字游戏Java是一种功能强大的编程语言,可以用来开发各种类型的应用程序,包括游戏。

在本篇文章中,我将向您介绍如何使用Java制作一个简单的打字游戏。

首先,我们需要设置游戏的基本框架。

创建一个Java类,命名为TypingGame。

在TypingGame类中,我们将使用Java Swing库来创建游戏窗口和图形界面。

import javax.swing.*;import java.awt.*;import java.awt.event.*;public class TypingGame extends JFrame {private JLabel titleLabel;private JLabel wordLabel;private JTextField inputField;private JButton startButton;private JButton resetButton;private JLabel scoreLabel;private int score;public TypingGame() {initComponents();}private void initComponents() {setTitle("打字游戏");setDefaultCloseOperation(EXIT_ON_CLOSE);setLayout(new FlowLayout());titleLabel = new JLabel("欢迎来到打字游戏!");add(titleLabel);wordLabel = new JLabel();wordLabel.setFont(new Font("Arial", Font.BOLD, 24)); add(wordLabel);inputField = new JTextField(10);add(inputField);startButton = new JButton("开始");startButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) {startGame();}});add(startButton);resetButton = new JButton("重置");resetButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {resetGame();}});add(resetButton);scoreLabel = new JLabel("得分: 0");add(scoreLabel);pack();}private void startGame() {String[] words = {"Java", "编程", "游戏", "挑战", "乐趣"}; int randomIndex = (int) (Math.random() * words.length); String randomWord = words[randomIndex];wordLabel.setText(randomWord);inputField.requestFocus();inputField.setText("");inputField.addKeyListener(new KeyAdapter() {public void keyTyped(KeyEvent evt) {char typedChar = evt.getKeyChar();if (typedChar == randomWord.charAt(0)) {score++;scoreLabel.setText("得分: " + score);randomIndex = (int) (Math.random() * words.length); randomWord = words[randomIndex];wordLabel.setText(randomWord);inputField.setText("");inputField.requestFocus();}}});}private void resetGame() {score = 0;scoreLabel.setText("得分: " + score);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {new TypingGame().setVisible(true);}});}}上述代码展示了一个简单的打字游戏的实现。

java课程设计字母打字游戏

java课程设计字母打字游戏

java课程设计字母打字游戏一、教学目标本节课的教学目标是让学生掌握Java编程的基本语法和流程控制,能够使用Java编写简单的字母打字游戏。

具体来说,知识目标包括:1.理解Java的基本数据类型和变量。

2.掌握Java的运算符和表达式。

3.熟悉Java的流程控制语句,包括条件语句和循环语句。

技能目标包括:1.能够使用Java编写简单的程序,实现基本的输入输出。

2.能够使用Java的流程控制语句,实现程序的逻辑控制。

3.能够独立完成字母打字游戏的编写和调试。

情感态度价值观目标包括:1.培养学生对编程的兴趣和热情,提高学生的问题解决能力。

2.培养学生团队合作的精神,鼓励学生在课堂上积极互动和交流。

3.培养学生对编程的持续学习和探索的态度,激发学生的创新意识。

二、教学内容本节课的教学内容主要包括Java的基本语法和流程控制。

具体安排如下:1.介绍Java的基本数据类型和变量,包括整数类型、浮点类型、字符类型和布尔类型。

2.讲解Java的运算符和表达式,包括算术运算符、比较运算符、逻辑运算符和赋值运算符。

3.学习Java的流程控制语句,包括条件语句(if-else)和循环语句(for、while、do-while)。

4.通过案例分析和实践,让学生掌握条件语句和循环语句的使用,编写简单的字母打字游戏。

三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法相结合的方式。

具体方法如下:1.讲授法:教师讲解Java的基本语法和流程控制,为学生提供系统的知识框架。

2.案例分析法:通过分析具体的字母打字游戏案例,让学生理解和掌握Java编程的方法。

3.实验法:学生动手实践,编写和调试字母打字游戏,培养学生的实际编程能力。

4.小组讨论法:学生分组合作,互相交流和讨论,培养学生的团队合作精神和问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,本节课将利用多种教学资源。

具体资源如下:1.教材:《Java编程入门》教材,为学生提供基础知识的学习材料。

java课程设计记事本设计报告

java课程设计记事本设计报告

java课程设计记事本设计报告一、教学目标本课程旨在通过Java编程语言实现一个记事本应用程序,让学生掌握Java编程的基本概念和方法,培养学生的编程能力和解决问题的能力。

1.理解Java编程语言的基本语法和结构。

2.掌握Java编程中的数据类型、变量、运算符、控制语句等基本概念。

3.学习Java中的类和对象的概念,理解封装、继承和多态的原理。

4.熟悉Java中的常用类库和方法。

5.能够运用Java编程语言编写简单的程序。

6.能够使用Java编程语言实现一个记事本应用程序,包括文本的增删改查等功能。

7.能够分析并解决编程过程中遇到的问题。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成项目。

2.培养学生的创新思维和解决问题的能力,鼓励学生进行自主学习和探索。

3.培养学生的学习兴趣和自信心,让学生感受到编程的乐趣和成就感。

二、教学内容本课程的教学内容主要包括Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现。

1.Java编程语言的基本概念和方法:–数据类型、变量、运算符、控制语句等基本概念。

–类和对象的概念,封装、继承和多态的原理。

–常用类库和方法的使用。

2.记事本应用程序的设计和实现:–用户界面设计:创建文本框、按钮等控件,实现用户输入和显示功能。

–文件操作:实现文件的打开、保存、关闭等功能,使用文件读写技术。

–文本处理:实现文本的增删改查等功能,使用数据结构和算法进行文本管理。

三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。

1.讲授法:教师通过讲解Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现,引导学生掌握相关知识。

2.讨论法:学生分组进行讨论,分享自己的理解和思路,互相学习和交流。

3.案例分析法:分析实际案例,让学生了解记事本应用程序的实际应用场景和设计思路。

4.实验法:学生通过编写代码和进行实验,实现记事本应用程序的功能,培养学生的实际编程能力和解决问题的能力。

java课程设计实验报告

java课程设计实验报告

j a v a课程设计实验报告 Last updated on the afternoon of January 3, 2021Java课程设计实验报告实验题目:打字游戏小程序专业:计算机科学与技术系班级:1202班成员:Java课程设计(打字游戏小程序)一、课程设计目的经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥。

在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识。

二、课程设计内容1.课程设计简介设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分。

2.设计说明因为要进行键盘操作,所以引用了event包,还要注册事件监听。

字母是随机产生的,又要用。

注册了线程。

还要对窗口定义坐标,防止字母出现在同一位子。

并且通过一位数组来给随机出现的字母做坐标定义。

主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制。

3.设计流程图4.实现功能随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少。

5.详细设计(源代码)1)packageDownCharGame;importimportimport/***下落的字母实体类*@authorshenbf**/publicclassCharEntity{raw(g);}etY()>=480){etX((int)()*580)+30);chs[i].setY(0);chs[i].setColor(newColor((int)()*256),(int)()*256),(int)()*256)));chs[i].setCh((char)(65+(int)()*26)));}chs[i].down();}repaint();tart();}publicvoidkeyTyped(KeyEvente){}publicvoidkeyPressed(KeyEvente){}publicvoidkeyReleased(KeyEvente){etCh()||key==chs[i].getCh()+32){etY()<chs[i].getY()){maxYindex=i;}}}}etX((int)()*580)+30);chs[maxYindex].setY(0);chs[maxYindex].setCh((char)(65+(int)()*26)));}}}三、运行结果截图:四、实验总结:此程序运用了一维数组,且随机性。

java打字训练测试软件课程设计

java打字训练测试软件课程设计

java打字训练测试软件课程设计一、课程目标知识目标:1. 理解Java编程语言的基本语法和结构;2. 掌握使用Java编写简单程序的能力;3. 学习编写打字训练测试软件的相关类和接口;4. 了解软件开发的流程和规范。

技能目标:1. 能够运用所学知识独立设计并编写打字训练测试软件;2. 培养良好的编程习惯,编写结构清晰、可读性强的代码;3. 提高问题分析能力和逻辑思维能力;4. 学会使用调试工具进行程序调试,找出并修复错误。

情感态度价值观目标:1. 培养对编程的兴趣和热情,激发主动学习的动力;2. 树立团队协作意识,学会与他人共同解决问题;3. 培养严谨、踏实的学术态度,勇于面对编程中的挑战;4. 增强自信心,相信自己具备解决复杂问题的能力。

本课程针对高年级学生,结合学科特点和学生实际情况,将知识目标、技能目标和情感态度价值观目标分解为具体的学习成果。

教学过程中,注重理论与实践相结合,培养学生实际编程能力,提高他们对编程的兴趣和热情。

通过本课程的学习,使学生能够独立完成打字训练测试软件的设计与开发,为后续学习奠定基础。

二、教学内容1. Java基本语法:变量、数据类型、运算符、控制语句(条件语句、循环语句);2. 面向对象编程:类与对象、构造方法、封装、继承、多态;3. 常用类和接口:String类、Scanner类、ArrayList集合;4. 异常处理:异常的概念、try-catch语句、throws关键字;5. 文件操作:文件的读取与写入、文件的随机访问;6. 图形用户界面(GUI):Swing图形用户界面编程、事件处理;7. 打字训练测试软件设计:需求分析、功能设计、界面设计、编码实现、测试与调试。

教学内容按照教学大纲安排,结合课本章节进行组织,确保科学性和系统性。

具体安排如下:1. 前四章为基础知识,为学生编写打字训练测试软件提供必要的语法支持;2. 第五、六章为进阶知识,使学生掌握异常处理和文件操作,为软件设计提供保障;3. 第七章为实际应用,通过学习GUI编程,让学生能够独立设计并实现打字训练测试软件;4. 整个教学内容以实际项目为导向,将理论知识与实际操作相结合,提高学生的编程实践能力。

打字训练测试java课程设计

打字训练测试java课程设计

打字训练测试java课程设计一、课程目标知识目标:1. 让学生掌握Java语言中基本的输入输出流概念,并能运用到实际编程中。

2. 让学生了解键盘操作的基本知识,理解打字速度和准确性在编程中的重要性。

3. 让学生掌握至少一种Java编程环境下的文本编辑和代码运行方法。

技能目标:1. 培养学生熟练使用键盘进行打字的能力,提高打字速度和准确性,达到每分钟输入XX个字符以上。

2. 培养学生运用Java语言编写简单的输入输出程序,实现对用户输入的处理和响应。

3. 培养学生通过编程解决问题,培养逻辑思维和编程实践能力。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习积极性,形成主动学习的态度。

2. 培养学生团队合作意识,学会在编程过程中互相帮助、共同进步。

3. 培养学生严谨、细心的编程习惯,提高代码质量,增强对编程工作的敬业精神。

课程性质:本课程为实践性较强的Java编程入门课程,以训练学生打字速度和编程实践能力为主要目标。

学生特点:学生为初中年级,具备一定的计算机操作基础,对编程有一定兴趣,但编程实践经验不足。

教学要求:结合学生特点,注重实践操作,引导学生通过动手实践掌握编程技能,提高打字速度和准确性,培养学生编程兴趣。

在教学过程中,关注学生个体差异,提供个性化指导,确保每个学生都能达到课程目标。

将目标分解为具体学习成果,便于教学设计和评估。

二、教学内容1. Java基础输入输出流概念:- 理解输入输出流的概念和作用。

- 掌握使用Scanner类进行键盘输入。

- 学习System.out.println()等输出方法。

2. 键盘打字技能训练:- 训练学生熟悉键盘布局,提高打字速度和准确性。

- 引导学生掌握正确的打字姿势和指法。

- 练习常用的打字练习软件,巩固打字技能。

3. Java编程环境使用:- 学习至少一种Java集成开发环境(IDE),如Eclipse、IntelliJ IDEA等。

- 掌握如何创建Java项目、编写代码、编译和运行程序。

(完整版)Java毕业课程设计打字游戏

(完整版)Java毕业课程设计打字游戏

中南大学Java课程设计报告题目打字游戏学生姓名窦立阳指导教师陈丽萍学院信息科学与工程学院专业班级计科1204完成时间 2015年1月15日目录第一章实验要求 (3)第二章总体设计2.1 界面设计 (4)2.2 运行流程 (4)2.3 逻辑设计 (4)2.4 积分设计 (4)第三章详细设计3.1 主面板 (5)3.1.1 两个按键 (5)3.1.2 相关全局变量 (5)3.1.3 全局变量说明 (5)3.1.4 相关全局函数 (7)3.2 字符下落模块 (7)3.2.1WordLabel (7)3.2.2WordFallControl (8)3.2.3WordFallLabel (8)3.3 速度控制模块 (8)3.4 按键模块设计 (8)3.5 键盘监听事件 (9)3.6 积分模块设计 (9)3.7 事件模块设计 (10)第四章调试分析4.1 第一次调4.2 第二次调试 (11)4.3 第三次调试 (12)第五章运行结果 (13)第六章课程设计总结 (17)第七章参考文献 (19)第八章附录:带注释的源代码8.1Wordfall (20)8.1.1 WordFallControl 类 (20)8.1.2 WordLabel 类 (22)8.1.3 WordFallLabel 类 (23)8.2 ScoreLabel 类 (24)8.3 StartButton 类 (25)8.4 TimeLabel8.5 AAAAA类:程序的主函数入口 (28)8.6 Maintain 类 (30)第一章实验要求【问题描述】设计实现一个打字游戏,界面参见图2-2,具备如下功能:●点击“开始”按钮,产生随机字符从屏幕上方下落;●点击键盘上按钮,如果正确,当前的字符消失,产生新的按钮从上方继续落下。

●提供速度调整和积分功能。

图2-2 打字游戏界面第二章总体设计2.1 界面设计根据实验要求中的图2-2,在主面板中,1.1.1 有一个模块控制各个字符的生成并且控制他们的自动下落,并在正确触发时,字符不可见;1.1.2有一个模块用于设置下落速度;1.1.3有两个按键,分别为“开始”和“结束”,用于字符下落的开始和结束;1.1.4整个面板处于键盘事件监听中,所以还有一个模块负责监听键盘事件;1.1.5相应的,根据要求,会有一个模块用于将键盘事件和下落的字符进行操作,并且计算出积分。

打字游戏的设计报告

打字游戏的设计报告

打字游戏的设计报告姓名:赵香俊班级:中北11级.net专业:软件设计日期:2012-10-25目录简介3目的3范围3参考资料3概述3定义13 2.1排行版:4 2.2自由模式:4 2.3 计时赛:4 2.4 生存模式:4 2.5难度选择: 5 2.6 游戏帮助:5定义2:6简介将本系统中所涉及的词汇(术语)进行详细、准确的描述。

目的1.1.1在描述的过程中让开发人员了解、熟悉业务过程。

1.1.2为用例描述、用例建模、架构设计提供术语解释。

1.1.3为实体建模、数据库设计提供术语解释。

范围主界面模块,自由游戏模块,生存模式模块,计时赛模块,排行版模块参考资料概述定义12.1主页面在主页面上有排行版,自由练习,计时赛,生存模式以及难度的选择。

Label1 Label2 Label3 Label4 Label5 Label6,上字体的颜色可以不断地变化。

在难度中可以让用户选择,可以把选项放在一个panel中,让他隐藏来,当用户点难度的时候可以选择难易程度。

在接下来介绍的三种模式当中都可以把他们放在同一个界面上2.2自由模式:你点击开始-游戏开始游戏开始后会从屏幕的上方掉下字,每次落下来的字的颜色都不同,速度也不同,并且不可以让字飘到屏幕以外的地方。

如果你在没有落到屏幕的底方的时候把字给消除了,加10分,否则就扣10分。

同时成绩也会记录到数据库中,在排行版中可以查询。

2.3计时赛:1.用户点击开始,开始的按钮上会显示出暂停,这两个功能可以在同一个按钮上切换,点击开始,音乐响起,随之字母会从屏幕的最上方落下来,每次的颜色不同,速度不同,字母也不同,当你在字母没有落到屏幕的最低端的时候你把字母给消除了你就可以加10分,否则减10分。

在计时赛这个模块中有时间限制,如果到了规定的时间内,系统就会停止工作。

2.2.4 生存模式1.用户点击开始,开始的按钮上会显示出暂停,这两个功能可以在同一个按钮上切换,点击开始,音乐响起,随之字母会从屏幕的最上方落下来,每次的颜色不同,速度不同,字母也不同,当你在字母没有落到屏幕的最低端的时候你把字母给消除了你就可以加10分,否则减10分。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java课程设计报告--打字游戏Java开发技术课程设计(打字游戏)学院:计算机与信息工程学院学号:******姓名: **时间:2011年12月14日一、程序描述1.1程序设计的目的通过java开发技术课程的学习,我初步了解了如何运用java语言编写程序。

课程结束后,按老师的要求,在查找资料后,我完成了打字练习这个程序。

在这个过程中,主要达到了两个目的,一是检验和巩固专业知识,二是提高综合课堂上掌握的理论知识与处理数据的素质和能力。

通过该程序的编写,可以将我业务相结合,以检验我掌握知识的宽度、深度及对知识的综合运用能力。

1.2程序设计的要求(1)程序的界面会随机的出现字母和数字,玩家在键盘上摁相应的键后,界面上的对应的字符就会消失(2)字符下落的速度可以选择,完成一定量的字符后,显示进入下一关,下一关的速度加快(3)能统计正确与错误的字符数分别是多少(4)程序的主界面是能够给玩家第一感官的部分,主要包括程序图形区域界面、程序的显示更新界面。

1.3程序设计的环境Windows xp操作系统、Myeclipse编辑工具、jdk1.6二、分析与设计2.1 游戏处理流程本次游戏设计的处理流程如下图所示进入游戏画面单击“开始”按钮,游戏开始,字符开始随机。

根据出现的字符按相应的键,对应一个消失一个(字符)按对一定字符后将提示进入下一关,下一关的速度有所增加。

速度也可单独调节。

没有摁倒相应游戏中途欲中的键,错误的断,稍后继续数字将加一游戏单击“退出” 单击“暂停”退出游戏游戏暂停再次单击开始游戏,游戏恢复游戏处理流程图 2.2需求分析2.2.1 用户的特点打字练习具有很强的实用性,对键盘不熟悉的人均可用之练习。

这种需求同时也要求该程序具有可调节性,用户可以根据自己的水平调节速度,以提高打字水平。

2.2.2 功能需求在可使用性方面,要求各个功能实现简单,操作方便,系统处理正确;整个系统恢复性能好,连接速度快,以确保系统可使用性好。

另外,还要求系统的可扩展性、可维护性、可移植性良好。

2.3.3 主界面模块该方法实现了速度的调节public void run() {number.clear();zhengque = 0;cuowu = 0;paiduan = "true";while (count <= rush[rush_count]) {try {Thread t = new Thread(new Tthread());t.start();count += 1;Thread.sleep(1000 + (int) (Math.random() * 2000)); // 生产下组停顿时间.最慢2秒 // 最快1快} catch (InterruptedException e) {e.printStackTrace();}}}该方法实现了对错个数的统计classMyListener extends KeyAdapter { public void keyPressed(KeyEvent e) {String uu = e.getKeyChar() + ""; for (inti = 0; i<number.size(); i++) {Bean bean = ((Bean) number.get(i)); if(uu.equalsIgnoreCase(bean.getParameter())) { zhengque += 1;number.removeElementAt(i);bean.getShow().setVisible(false);jLabel2.setText("正确:" + zhengque + "个,错误:" + cuowu + "个");Music_chenggong.play();break;}}//-----------------声音文件---------------------Musci_anjian = Applet.newAudioClip(new File("sounds//anjian.wav") .toURL());Music_shibai = Applet.newAudioClip(new File("sounds//shibai.wav") .toURL());Music_chenggong = Applet.newAudioClip(new File( "sounds//chenggong.wav").toURL());//---------------------------------------三、程序运行初始界面开始游戏,字符降落过关提示闯关失败,再接再厉四、心得体会1)通过本学期的java的学习,我掌握了java语言的基本知识,通过java我又学习了很多其他的有用的东西,比如算法,数据结构。

在了解了java 之后我对java产生了浓厚的爱意。

2)通过这几周的实验,让我把这学期学的知识应用于实践之上,理论付之于实践真的很难,掌握的基础知识开始根本不知道怎么组织。

但我对java 的爱是不可能就这样被扼杀的。

通过我的上网查,书上看,动动手,终於功夫不负有心人。

我顺利的完成了实验。

3)这次实验让我对java的Swing编程的了解详细了不少,填补了我很多的空缺。

在实现功能的时候我懂得了算法对程序的重要性,一个好的算法可以让你的程序更健壮,编写的代码量更少。

处理异常一直是java里的常事,通过实验,我对一般的异常的处理更加有把握了。

更加游刃有余。

4)学习的秘诀就是毅力加恒心。

学习java也是一样的道理,我相信只要我坚持一直走下去,java一定会成为我大展身手的舞台。

附:代码importjava.applet.Applet; importjava.applet.AudioClip;importjava.awt.Dimension; importjava.awt.Font;importjava.awt.Toolkit;importjavax.sound.sampled.AudioFileFormat;importjavax.sound.sampled.AudioSystem; importjavax.swing.JFrame;importjavax.swing.JPanel;importjava.awt.Rectangle;importjavax.swing.BorderFactory; importjavax.swing.JButton;importjavax.swing.JOptionPane;importjavax.swing.JSlider;importjavax.swing.JLabel;importjavax.swing.SwingUtilities; importjavax.swing.UIManager;importjavax.swing.event.ChangeEvent;importjavax.swing.event.ChangeListener; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjava.awt.event.KeyAdapter; importjava.awt.event.KeyEvent;importjava.io.File;importjava.util.Vector;public class Frame extends JFrame implements Runnable {JPanelcontentPane;JPanel jPanel1 = new JPanel();JButton jButton1 = new JButton();JSlider jSlider1 = new JSlider();JLabel jLabel1 = new JLabel();JButton jButton2 = new JButton();JLabel jLabel2 = new JLabel();int count = 1, rapidity = 80; intzhengque = 0, cuowu = 0;int rush[] = { 10 ,20 ,30 }; 列 { 10 ,20 ,30 ,40,50}intrush_count = 0;char list[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L','M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; //随机出现的数字可以自由添加Vector number = new Vector();String paiduan = "true";AudioClipMusci_anjian, Music_shibai, Music_chenggong;public Frame() {try {setDefaultCloseOperation(EXIT_ON_CLOSE);//-----------------声音文件---------------------Musci_anjian = Applet.newAudioClip(new File("sounds//anjian.wav") .toURL());Music_shibai = Applet.newAudioClip(new File("sounds//shibai.wav") .toURL());Music_chenggong = Applet.newAudioClip(new File("sounds//chenggong.wav").toURL());//--------------------------------------- jbInit();} catch (Exception exception) { exception.printStackTrace();}}/*** Component initialization.** @throws ng.Exception*/private void jbInit() throws Exception { contentPane = (JPanel) getContentPane(); contentPane.setLayout(null);setSize(new Dimension(588, 530)); setTitle("Frame Title");jPanel1.setBorder(BorderFactory.createEtchedBorder());jPanel1.setBounds(new Rectangle(4, 4, 573, 419));jPanel1.setLayout(null);jButton1.setBounds(new Rectangle(277, 442, 89, 31));jButton1.setText("开始");jButton1.addActionListener(newFrame1_jButton1_actionAdapter(this));jSlider1.setBounds(new Rectangle(83, 448, 164, 21));jSlider1.setMaximum(100);jSlider1.setMinimum(1);jSlider1.setValue(50);jLabel1.setText("速度");jLabel1.setBounds(new Rectangle(35, 451, 39, 18));jButton2.setBounds(new Rectangle(408, 442, 89, 31));jButton2.setText("结束");jButton2.addActionListener(newFrame1_jButton2_actionAdapter(this));jLabel2.setText("第一关:100个");jLabel2.setBounds(new Rectangle(414, 473, 171, 21)); contentPane.add(jPanel1);contentPane.add(jButton2);contentPane.add(jButton1);contentPane.add(jSlider1);contentPane.add(jLabel1);contentPane.add(jLabel2);this.addKeyListener(new MyListener()); jButton1.addKeyListener(new MyListener()); jSlider1.addKeyListener(new MyListener());jSlider1.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { rapidity = jSlider1.getValue();}});}public void run() {number.clear();zhengque = 0;cuowu = 0;paiduan = "true";while (count <= rush[rush_count]) { try {Thread t = new Thread(new Tthread()); t.start();count += 1;Thread.sleep(1000 + (int) (Math.random() * 2000)); // 生产下组停顿时间// 最快1快.最慢2秒} catch (InterruptedException e) {e.printStackTrace();}}while (true) { // 等待最后一个字符消失if (number.size() == 0) { break;}}if (zhengque == 0) { // 为了以后相除..如果全部正确或者错误就会出现错误. 所以..zhengque = 1;}if (cuowu == 0) {cuowu = 1;}if (paiduan.equals("true")) { // 判断是否是自然结束 if (zhengque / cuowu>= 2) {JOptionPane.showMessageDialog(null, "恭喜你过关了"); rush_count += 1; // 自动加1关if (rush_count<rush.length) {if (rapidity > 10) { // 当速度大于10的时候在-5提加速度.怕速度太快rapidity -= 5; // 速度自动减10毫秒jSlider1.setValue(rapidity); // 选择位置}Thread t = new Thread(this);t.start();} else {JOptionPane.showMessageDialog(null, "牛B...你通关了.."); rush_count = 0;count = 0;}} else {JOptionPane.showMessageDialog(null, "请再接再励"); rush_count = 0;count = 0;}} else {rush_count = 0;count = 0;}}public void jButton1_actionPerformed(ActionEvent e) {Thread t = new Thread(this); t.start();}public void jButton2_actionPerformed(ActionEvent e) {count = rush[rush_count] + 1;paiduan = "flase";}classTthread implements Runnable { public void run() {booleanfo = true;int Y = 0, X = 0;JLabel show = new JLabel();show.setFont(new java.awt.Font("宋体", Font.PLAIN, 33));jPanel1.add(show);X = 10 + (int) (Math.random() * 400);String parameter = list[(int) (Math.random() * list.length)] + "";Bean bean = new Bean();bean.setParameter(parameter);bean.setShow(show);number.add(bean);show.setText(parameter);while (fo) {// ---------------------数字下移--------------------show.setBounds(new Rectangle(X, Y += 2, 33, 33)); try {Thread.sleep(rapidity);} catch (InterruptedException e) { e.printStackTrace();}if (Y >= 419) {fo = false;for (inti = number.size() - 1; i>= 0; i--) {Bean bn = ((Bean) number.get(i)); if(parameter.equalsIgnoreCase(bn.getParameter())) { cuowu += 1;jLabel2.setText("正确:" + zhengque + "个,错误:" +cuowu+ "个");number.removeElementAt(i);Music_shibai.play();break;}}}}}}classMyListener extends KeyAdapter { public void keyPressed(KeyEvent e) {String uu = e.getKeyChar() + ""; for (inti = 0; i<number.size(); i++) {Bean bean = ((Bean) number.get(i)); if(uu.equalsIgnoreCase(bean.getParameter())) {zhengque += 1;number.removeElementAt(i);bean.getShow().setVisible(false);jLabel2.setText("正确:" + zhengque + "个,错误:" + cuowu +"个");Music_chenggong.play();break;}}Musci_anjian.play();}}public static void main(String[] args) { try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelCla ssName());} catch (Exception exception) { exception.printStackTrace();}Frame frame = new Frame();Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize();Dimension frameSize = frame.getSize(); if(frameSize.height>screenSize.height) {frameSize.height = screenSize.height;}if (frameSize.width>screenSize.width) { frameSize.width = screenSize.width;}frame.setLocation((screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.height) / 2); frame.setVisible(true);}}class Frame1_jButton2_actionAdapter implements ActionListener{private Frame adaptee;Frame1_jButton2_actionAdapter(Frame adaptee) { this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton2_actionPerformed(e); }}class Frame1_jButton1_actionAdapter implements ActionListener{private Frame adaptee;Frame1_jButton1_actionAdapter(Frame adaptee) { this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton1_actionPerformed(e); }}class Bean {String parameter = null;JLabel show = null;publicJLabelgetShow() {return show;}public void setShow(JLabel show) { this.show = show; }public String getParameter() { return parameter;}public void setParameter(String parameter) {this.parameter = parameter; }}。

相关文档
最新文档