随机产生单词java_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;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
随机产生单词java_JavaGUI实现随机单词答题游戏相关推荐
- Python:读出文本本件,统计单词数输出;读出文本文件,随机输出其中的10个单词
#读出文本本件,统计单词数输出:读出文本文件,随机输出其中的10个单词 import re import random f=open("this.txt","r" ...
- python英语单词 扇贝英语安卓下载_扇贝单词app下载-扇贝单词英语版 安卓版v3.6.503-pc6手机下载...
扇贝单词app是一款可以和小伙伴一起学英语背单词的app,扇贝单词英语版属于千万用户的背单词神器,让你的英语水平突飞猛进,你确定不要来试一试吗? 软件介绍 扇贝单词英语版是一款很实用的英语单词学习软件 ...
- 微信红包随机数字_微信红包随机算法转载
php固定红包 + 随机红包算法 1 需求 CleverCode最近接到一个需求,需要写一个固定红包 + 随机红包算法. 1 固定红包就是每个红包金额一样,有多少个就发多少个固定红包金额就行. 2 随 ...
- 比特币/以太坊/加密货币/网络/区块链/钱包助记词:密码学的角度上,24个单词比12个单词更安全吗
我们从密码学角度来聊聊助记词. 随着区块链钱包的发展和分层确定性(HD)钱包技术的普及,越来越多的用户开始熟悉了一个叫"助记词"的概念,很多人都已经习惯了从一开始使用一个钱包的时候 ...
- R语言随机森林模型:计算随机森林模型的特征重要度(feature importance)并可视化特征重要度、使用少数重要特征拟合随机森林模型(比较所有特征模型和重要特征模型在测试集上的表现差异)
R语言随机森林模型:计算随机森林模型的特征重要度(feature importance)并可视化特征重要度.使用少数重要特征拟合随机森林模型(比较所有特征模型和重要特征模型在测试集上的表现差异) 目录
- 随机森林图像分类实战:随机森林分类聚类(Kmeans)降维后的数据、随机森林分类聚类(Kmeans)降维后的合成(append)数据
随机森林图像分类实战:随机森林分类聚类(Kmeans)降维后的数据.随机森林分类聚类(Kmeans)降维后的合成(append)数据 目录
- python单词意思-Python这个单词是什么含义??????????????
摘要: ... Python这个单词是什么含义??????????????的答案与解析↓↓本题答案和解析请扫描下面二维码↓↓ 以下为相关问题与答案和解析 附负担的赠与,其赠与物如有瑕疵的,则 ( ) ...
- python常用英语单词-python – 获取英语单词的基本形式
我试图获得一个英语单词的基本英语单词,该单词是从其基本形式修改的.这个问题已在这里提出,但我没有看到正确的答案,所以我试图这样说.我尝试了两个来自NLTK包的词干器和一个词形变换器,它们是搬运器,干扰 ...
- Python语言学习:Python随机生成那些事之随机生成使用方法、案例应用之详细攻略
Python语言学习:利用Python随机生成那些事之随机生成使用方法.案例应用之详细攻略 目录 案例应用 1.随机生成指定区间内的某一值 案例应用 1.随机生成指定区间内的某一值 使用说明:给定区域 ...
最新文章
- ps抠图怎么放大图片_PS教程:透明玻璃杯不会抠图?一分钟利用通道面板快速抠图...
- 电信信息日志使用mapreduce统计的两种方式
- jzoj100046-收集卡片【暴力】
- python逐行打印_如何用Python逐行打印字典?
- python网络编程linux pdf_Python网络编程:Linux epoll
- C# DataSet和DataTable详解
- 杨辉三角形(C语言)(使用一维数组的版本)
- python调用java接口或者类_python如何调用java类
- HTC HD2解锁详细教程
- MCJE魔改材质包教程
- 基于TencentOS-tiny实现甲醛传感器(英国达特 WZ-S)数据解析思路及实现
- 动手学数据分析(五)- 模型建立和评估
- ColdFusion mx 7.0 函数分类列表
- 计算机怎么没有word文档,电脑新建没有word文档怎么办 没有Word解决方法
- c语言-链表-贪吃蛇
- 机器学习之三:降维技术
- python打包whl文件
- 布袋除尘器过滤风速多少_布袋除尘器的过滤风速一般取多少
- 关于手机联系人的中文字母排序问题
- MongoDB权威指南读书笔记——CRUD
热门文章
- 论文最后一页是空白页的有效删除方法
- nmn对身体有用吗,nmn修复效果怎么样,其中的原理你要知道
- python中秋月饼
- 匿名虚拟服务器,如何使 SMTP 虚拟服务器能够接受匿名发送的邮件扩展属性
- OpenCV第六篇:阈值函数
- 计算机格式化后能恢复数据吗,格式化数据恢复 电脑格式化了还能恢复吗?原来找回如此简单!...
- 如何使用Python实现回文的判断?
- 电子版微积分,知识共享,数学真知传四方
- Hotel booking -探索性数据分析(EDA)一(seaborn matplot pyecharts)
- [画风突变] 藤原千花专属相册,C语言制作书记专属电子相册!