JavaGUI实现随机单词答题游戏

本文实例为大家分享了JavaGUI实现随机单词答题游戏的具体代码,供大家参考,具体内容如下

案例描述:java-gui实现单词游戏,随机显示单词,键盘在文本框中输入想对应的单词,回答正确加5分,错误扣三分**

案例图片

回答正确

回答错误

重置答题

案例分析

1.定义三个面板存放各个组件JPanel
2.定义拆分窗格布局
3.创造三个文本域用来显示和输入
4.定义滚动窗格设置自动换行
5.定义"确定"重置”“退出”按钮
6.给三个按钮添加事件处理
7.定义单词显示区域
8.定义几个数据存放分数答题数
9.设置字体大小和颜色
10.设置布局管理器

废话不说直接上代码(注释已经写好了)

import java.awt.*; //导包
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;
public class Swing_exercise2 extends JFrame { //继承JFrame顶层框架

 //定义面板
 JPanel jp1;
 JPanel jp2;
 JPanel jp3;

 //定义拆分窗格
 JSplitPane jsp;
 JSplitPane jsp1;

 //定义文本域
 JTextArea jta1;
 TextField jta2;
 JTextArea jta3;

 //定义滚动窗格
 JScrollPane jspane1;
 JScrollPane jspane2;
 JScrollPane jspane3;

 //定义按钮
 JButton jb2;
 JButton jb3;
 JButton jb1;

 //定义显示区域
 JLabel jla1;

 //定义随机函数
 Random ran;
 private int sw; //屏幕宽度和高度
 private int sh; //屏幕宽度和高度
 private String ch;//随机单词
 private int Fen;//记录分数
 private int z;//记录正确题数
 private int x;//记录错误题数
 private int sun;//记录总题数

 public static void main(String[] args) {
 Swing_exercise2 a = new Swing_exercise2(); //显示界面
 }

 public Swing_exercise2() //构造函数
 {
 //字体初始化 Times new roman:罗马字样 加粗
 Font font = new Font("Times new roman", Font.BOLD, 50);
 Font font2 = new Font("Times new roman", Font.BOLD, 30);
 Font font1 = new Font("宋体", Font.BOLD, 20);
 Font font4 = new Font("宋体", Font.BOLD, 70);

 //创建随机函数
 ran = new Random();

 //创建面板
 jp1 = new JPanel();
 jp2 = new JPanel();
 jp3 = new JPanel();

 //创建多行文本框
 jta1 = new JTextArea();
 jta3 = new JTextArea();

 //创建单行文本框
 jta2 = new TextField(10);

 //设置多行文本框自动换行
 jta1.setLineWrap(true);
 jta3.setLineWrap(true);

 //创建滚动窗格
 jspane1 = new JScrollPane(jta1);
 jspane2 = new JScrollPane(jta2);
 jspane3 = new JScrollPane(jta3);

 //设置字体样式
 jta3.setFont(font1);
 jta2.setFont(font2);
 jta1.setFont(font);

 //创建拆分窗格
 jsp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, jspane1, jspane2);
 jsp1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jspane3, jsp);

 //分频器布局
 jsp.setDividerLocation(700); //设置拆分窗格分频器初始位置
 jsp.setDividerSize(10);  //设置分频器大小
 jsp1.setDividerLocation(0.5); //设置拆分窗格分频器初始位置
 jsp1.setDividerSize(10);  //设置分频器大小

 //设置调整单词显示区
 jla1 = new JLabel();
 jla1.setFont(font);

 //初始化显示页面
 ch = RandomWords();
 jla1.setText(ch);
 jla1.setSize(sw, sh);
 jla1.setSize(500, 500);
 jla1.setLocation(ran.nextInt(300), ran.nextInt(200));

 //设置颜色
 jla1.setForeground(Color.green);
 jla1.setBackground(Color.decode("#000cc"));

 //创建按钮
 jb2 = new JButton("确定");
 jb3 = new JButton("退出");
 jb1 = new JButton("重置");

 //设置布局管理
 jp1.setLayout(new BorderLayout()); //设置面板布局
 jp2.setLayout(new FlowLayout(FlowLayout.CENTER));
 jp3.setLayout(new BorderLayout());

 //添加组件
 jp1.add(jsp);
 jp2.add(jb2);
 jp2.add(jb1);
 jp2.add(jb3);
 jp3.add(jsp1);
 jta1.add(jla1);

 //初始化得分数据
 Fen=0;
 z=0;
 x=0;
 sun=0;

 //布置整体面板布局
 this.add(jp1, BorderLayout.CENTER);
 this.add(jp2, BorderLayout.SOUTH);
 this.add(jp3, BorderLayout.WEST);

 //设置窗体属性
 this.setTitle("单词游戏");     //设置界面标题
 this.setExtendedState(MAXIMIZED_BOTH);   //窗口最大化
 this.setLocation(1000, 200);    //设置界面初始位置
 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置虚拟机和界面一同关闭
 this.setVisible(true);     //设置界面可视化

 //空格加鼠标确定事件监听
 jb2.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
  if (jta2.getText().equals(ch)) {
   jta1.setText("");
   jta2.setText("");
   z=z+1;
   Fen=Fen+5;
   sun=x+z;
   jta3.setForeground(Color.blue);
   jta3.setText("回答正确 " +
    " 得分+5  "+"  作答情况 "+""+"正确:"+z+" "+"错误:"
    +x+" 总答题:"+sun+"  总得分为 "+Fen+" " +
    " 不要骄傲");
   ch = RandomWords();
   jla1.setText(ch);
   jla1.setLocation(ran.nextInt(700), ran.nextInt(300));
  }else {
   jta3.setForeground(Color.red);
   jta1.setText("");
   jta2.setText("");
   Fen=Fen-2;
   if(Fen<0){
   Fen=0;
   }
   x+=1;
   sun=x+z;
   jta3.setText("回答错误 " +
    " 得分-2  "+"  作答情况 "+""+"正确:"+z+" "+"错误:"
    +x+" 总答题:"+sun+"  总得分为 "+Fen+" " +
    " 再接再厉");
  }
  }
 });

 //退出按钮事件监听
 jb3.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
  System.exit(0);
  }
 });

 //重置按钮事件监听
 jb1.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
  jta3.setForeground(Color.GRAY);
  jta1.setFont(font4);
  jta1.setText("不骄不躁,继续努力");
  jta1.setForeground(Color.CYAN);
  jta2.setText("");
  z=0;
  sun=0;
  x=0;
  Fen=0;
  jta3.setText("重新答题 " +
   "  "+"作答情况"+""+"正确:0"+" "+"错误:0"
   +" 总答题:0"+"  总得分为 0 "+" " +
   "  不忘初心 继续前行");
  }
 });

 //备选空格事件处理

 /*jb2.addKeyListener(new KeyAdapter() {
  @Override
  public void keyReleased(KeyEvent e) {
  if(e.getKeyCode()==KeyEvent.getExtendedKeyCodeForChar(KeyEvent.VK_SPACE)){
   if (jta2.getText().equals(ch)) {
   z=z+1;
   Fen=Fen+5;
   sun=x+z;
   jta3.setText("回答正确 " +
    " 得分+5  "+" 作答情况"+""+"正确:"+z+" "+"错误:"
    +x+" 总答题:"+sun+"  总得分为 "+Fen+" " +
    " 不要骄傲");
   ch = RandomWords();
   jla1.setText(ch);
   jla1.setLocation(ran.nextInt(300), ran.nextInt(500));
   }else {
   Fen=Fen-2;
   x+=1;
   sun=x+z;
   jta3.setText("回答错误 " +
    " 得分-2  "+" 作答情况"+""+"正确:"+z+" "+"错误:"
    +x+" 总答题:"+sun+"  总得分为 "+Fen+" " +
    " 再接再厉");
   }

  }
  }
 });*/
 }

 //随机产生单词
 private String RandomWords() {//产生随机单词
 String[] s = {"good", "cheer", "strive", "optimistic", "hello", "word", "tercher", "student",
  "book", "genius", "handsome", "beautiful", "health", "happy", "exercice", "computer",
  "english", "jspanese", "eat", "me"};
 int b = ran.nextInt(21);//定义随机数区间[0,20]
 return s[b];
 }

 //获取用户屏幕大小
 private void SimpleFrame() {
 Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
 sw = dim.width;
 sh = dim.height;
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 基于java swing实现答题系统

    本文实例为大家分享了java swing实现答题系统的具体代码,供大家参考,具体内容如下 如上图所示,代码亲测可用,如下: import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; im

  • Java程序员的10道常见的XML面试问答题(XML术语详解)

    XML面试问题包括用于转换XML文件的XSLT技术,XPATH,XQuery等各种XML技术和XML基础知识,比如DTD或者Schema. 本文将看到10道常见的XML面试问答题.这些问题大部分在Java面试中会问到,同时在C,C++,Scala或其他语言的编程面试中同样很有用处.XML并不依赖于其他编程语言,同SQL一样是编程人员所需要的技能之一,因此在任何技术工作面试之前准备一些XML问题是很有意义的. XML面试问答 下面是我列出的关于XML技术经常会问到的面试题.这些问题并不很难但涵盖了

  • 非常实用的java自动答题计时计分器

    该小程序使用java语言编写,让用户计算10以内的加减乘除法,特别适合小学开始学习加减乘除法的学生,能很好地锻炼他们的运算能力,并过计分计时的游戏性质引起学习兴趣! 运行该程序会弹出一个窗口,按enter键开始答题,答完再按enter则进行计分和正确性判断,并出下一道题!每轮10道题,每题10分,答完自动计时记分,全程操作只需要按enter键,无其他按钮,幼儿园小学生都会玩! 并且在输入合法性方面,也做了相关校验和提示!欢迎大家发挥想象力,再此基础上再丰富和完善! 代码: package aut

  • JavaGUI实现随机单词答题游戏

    本文实例为大家分享了JavaGUI实现随机单词答题游戏的具体代码,供大家参考,具体内容如下 案例描述:java-gui实现单词游戏,随机显示单词,键盘在文本框中输入想对应的单词,回答正确加5分,错误扣三分** 案例图片 回答正确 回答错误 重置答题 案例分析 1.定义三个面板存放各个组件JPanel 2.定义拆分窗格布局 3.创造三个文本域用来显示和输入 4.定义滚动窗格设置自动换行 5.定义"确定"重置""退出"按钮 6.给三个按钮添加事件处理 7.定义

  • Python实现简单的猜单词小游戏

    本文实例为大家分享了Python实现猜单词小游戏的具体代码,供大家参考,具体内容如下 思路 1.一个words列表里存放若干的单词,例如:["extends", "private", "static", "public"] 2.在words列表里随机取出一个单词放进word列表,例如: 3.用一个tips列表存放提示信息,长度跟随机取出来的单词长度相同,而且初始化如下图: 4.一个列表放随机数,长度跟随机取出来的单词长度相同的

  • java实现单词小游戏

    本文实例为大家分享了java实现单词小游戏的具体代码,供大家参考,具体内容如下 介绍 公司最近有一个竞技场项目,里面有一个单词小游戏. 游戏大概就是随机生成一个5*5的棋盘,上面有单词的字母,通过滑动连出正确的单词. 棋盘生成算法 思路 首先随机选个一个起点,从这个点开始铺单词. 分别选取上下左右四个方向作为下一个字母的摆放位置,不能触边也不能走重复路,直到平铺完所有的单词. 如果在棋盘能平铺下单词的情况下,找不到路径,就从四个角作为起点,必能找到路径. 代码 import java.util.

  • 基于Python实现英语单词小游戏

    目录 导语 一.敲代码之前的小tips 二.运行环境 三.素材(图片等) 四.代码展示 1)主程序(英文打字小游戏主入口模块) 2)游戏配置信息模块 3)游戏视图模块 4)PyGame游戏精灵模块 五.效果展示 1)游戏界面 2)游戏设置 ​3)随机截图 4)游戏结束 导语 相信大家对于英语四级一点都不陌生了吧? 很多学校都是要求学生必须考过英语四级,不然就不能毕业. 一开始我抱着侥幸心理,心想上高中的时候英语不错,四级应该也很容易.不过成绩出来我就傻眼了,没有通过.然后我就制定了周密的学习计划

  • Flutter GridView显示随机单词效果

    本文实例为大家分享了Flutter GridView显示随机单词的具体代码,供大家参考,具体内容如下 一.Flutter GridView属性及构建方法介绍 1.SliverGridDelegateWithFixedCrossAxisCount构建固定数量的Widget gridDelegate = SliverGridDelegateWithFixedCrossAxisCount(          crossAxisCount: crossAxisCount, //设置每行个数      

  • python实现猜单词小游戏

    Python初学者小游戏:猜单词,供大家参考,具体内容如下 游戏逻辑:就像我们曾经英语学习机上的小游戏一样,电脑会从事先预置的词库中抽取单词,然后给出单词的字母数量,给定猜解次数,然后让玩家进行猜测,并给出每次猜测的正确字母与错误字母. 涉及知识点:random.randint(),print(),input()(raw_input()) 参考实现代码: #!/usr/bin/python # -*- coding: utf-8 -*- from __future__ import print_

  • python猜单词游戏的实现

    目录 1.游戏思路和流程图 2. 单词库和模块 3. 游戏开始提示 4. 重新开始游戏输入验证 5. 用户输入验证 6. 猜词判断(游戏核心) 7. 游戏完成度提示 8. 游戏核心外壳 9. 游戏外壳(重新开始游戏) 10. 运行游戏 1.游戏思路和流程图 实现功能:随机一个单词让玩家猜测(后续难度实现修改为成语填空,成语必须要有提示,可修改猜的次数,增加连续猜成语,难度系数随着次数的增加而增加) 游戏流程图 2. 单词库和模块 import random word='''and away bi

  • C#开发答题赢钱游戏(自动答题器)

    一.前言 现在最火的直播游戏,那就是答题赢钱直播了,如百万英雄.芝士超人.花椒直播.冲顶大会等等,这些游戏的玩法都很简单,答对12题即可瓜分奖金了.玩法虽然简单,但是要能完全答对12题难度还是挺高的,毕竟要非常广的知识面! 二.怎么做自动答题 要能自动答题,肯定是要能知道题目及答案了.题目可以从直播界面获取,方法就是OCR或者搞到数据接口了---嘿嘿,都说了简单教你,所以OCR或者分析数据接口这些复杂的操作,我肯定不教你了(我也不会啊^_%)-- 幸好,现在市面上有一些非常有技术"逼格"

  • python游戏开发的五个案例分享

    一.序列应用--猜单词游戏 1. 游戏介绍 猜单词游戏就是计筧机随机产生一个单词,打乱字母顺序,供玩家去猜测.此游戏采用控制字符界面, 2.  程序设计思路 游戏中,可使用序列中的元组存储所有待猜测的单词.因为猜单词游戏需要随机产生某个待猜测单词以及随机数字,所以引入random模块随机数函数.其中,random.choice()可以从序列中随机选取元素. 在游戏中,随机挑出一个单词word后,把单词word的字母顺序打乱的方法是随机单词字符串中选择一个位置position,把position位

  • Python实现简单的猜单词

    本文实例为大家分享了Python实现简单猜单词的具体代码,供大家参考,具体内容如下 游戏说明: 由程序随机产生一个单词,打乱该单词字母的排列顺序,玩家猜测原来的单词. 游戏关键点: 1.如何产生一个单词? 2.如何打乱单词字母的排列顺序? 设计思路: 采用了元组(tuple)和random模块. 元组作为单词库,使用random模块随机取一个单词. random模块随机选取字母,对字符串进行切片组合获得乱序单词. 关键点图示: 获得乱序单词,注意观察word.jumble.position的变化

随机推荐