本文实例为大家分享了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;

}

}

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

随机产生单词java_JavaGUI实现随机单词答题游戏相关推荐

  1. Python:读出文本本件,统计单词数输出;读出文本文件,随机输出其中的10个单词

    #读出文本本件,统计单词数输出:读出文本文件,随机输出其中的10个单词 import re import random f=open("this.txt","r" ...

  2. python英语单词 扇贝英语安卓下载_扇贝单词app下载-扇贝单词英语版 安卓版v3.6.503-pc6手机下载...

    扇贝单词app是一款可以和小伙伴一起学英语背单词的app,扇贝单词英语版属于千万用户的背单词神器,让你的英语水平突飞猛进,你确定不要来试一试吗? 软件介绍 扇贝单词英语版是一款很实用的英语单词学习软件 ...

  3. 微信红包随机数字_微信红包随机算法转载

    php固定红包 + 随机红包算法 1 需求 CleverCode最近接到一个需求,需要写一个固定红包 + 随机红包算法. 1 固定红包就是每个红包金额一样,有多少个就发多少个固定红包金额就行. 2 随 ...

  4. 比特币/以太坊/加密货币/网络/区块链/钱包助记词:密码学的角度上,24个单词比12个单词更安全吗

    我们从密码学角度来聊聊助记词. 随着区块链钱包的发展和分层确定性(HD)钱包技术的普及,越来越多的用户开始熟悉了一个叫"助记词"的概念,很多人都已经习惯了从一开始使用一个钱包的时候 ...

  5. R语言随机森林模型:计算随机森林模型的特征重要度(feature importance)并可视化特征重要度、使用少数重要特征拟合随机森林模型(比较所有特征模型和重要特征模型在测试集上的表现差异)

    R语言随机森林模型:计算随机森林模型的特征重要度(feature importance)并可视化特征重要度.使用少数重要特征拟合随机森林模型(比较所有特征模型和重要特征模型在测试集上的表现差异) 目录

  6. 随机森林图像分类实战:随机森林分类聚类(Kmeans)降维后的数据、随机森林分类聚类(Kmeans)降维后的合成(append)数据

    随机森林图像分类实战:随机森林分类聚类(Kmeans)降维后的数据.随机森林分类聚类(Kmeans)降维后的合成(append)数据 目录

  7. python单词意思-Python这个单词是什么含义??????????????

    摘要: ... Python这个单词是什么含义??????????????的答案与解析↓↓本题答案和解析请扫描下面二维码↓↓ 以下为相关问题与答案和解析 附负担的赠与,其赠与物如有瑕疵的,则 ( ) ...

  8. python常用英语单词-python – 获取英语单词的基本形式

    我试图获得一个英语单词的基本英语单词,该单词是从其基本形式修改的.这个问题已在这里提出,但我没有看到正确的答案,所以我试图这样说.我尝试了两个来自NLTK包的词干器和一个词形变换器,它们是搬运器,干扰 ...

  9. Python语言学习:Python随机生成那些事之随机生成使用方法、案例应用之详细攻略

    Python语言学习:利用Python随机生成那些事之随机生成使用方法.案例应用之详细攻略 目录 案例应用 1.随机生成指定区间内的某一值 案例应用 1.随机生成指定区间内的某一值 使用说明:给定区域 ...

最新文章

  1. ps抠图怎么放大图片_PS教程:透明玻璃杯不会抠图?一分钟利用通道面板快速抠图...
  2. 电信信息日志使用mapreduce统计的两种方式
  3. jzoj100046-收集卡片【暴力】
  4. python逐行打印_如何用Python逐行打印字典?
  5. python网络编程linux pdf_Python网络编程:Linux epoll
  6. C# DataSet和DataTable详解
  7. 杨辉三角形(C语言)(使用一维数组的版本)
  8. python调用java接口或者类_python如何调用java类
  9. HTC HD2解锁详细教程
  10. MCJE魔改材质包教程
  11. 基于TencentOS-tiny实现甲醛传感器(英国达特 WZ-S)数据解析思路及实现
  12. 动手学数据分析(五)- 模型建立和评估
  13. ColdFusion mx 7.0 函数分类列表
  14. 计算机怎么没有word文档,电脑新建没有word文档怎么办 没有Word解决方法
  15. c语言-链表-贪吃蛇
  16. 机器学习之三:降维技术
  17. python打包whl文件
  18. 布袋除尘器过滤风速多少_布袋除尘器的过滤风速一般取多少
  19. 关于手机联系人的中文字母排序问题
  20. MongoDB权威指南读书笔记——CRUD

热门文章

  1. 论文最后一页是空白页的有效删除方法
  2. nmn对身体有用吗,nmn修复效果怎么样,其中的原理你要知道
  3. python中秋月饼
  4. 匿名虚拟服务器,如何使 SMTP 虚拟服务器能够接受匿名发送的邮件扩展属性
  5. OpenCV第六篇:阈值函数
  6. 计算机格式化后能恢复数据吗,格式化数据恢复 电脑格式化了还能恢复吗?原来找回如此简单!...
  7. 如何使用Python实现回文的判断?
  8. 电子版微积分,知识共享,数学真知传四方
  9. Hotel booking -探索性数据分析(EDA)一(seaborn matplot pyecharts)
  10. [画风突变] 藤原千花专属相册,C语言制作书记专属电子相册!