java抽奖窗口程序_java模拟一个抽奖程序
今天用一个程序模拟一个从1-32之间,随机抽取7组号码的抽奖程序
* 需要使用Java的图形界面知识
* 窗口 JFrame
* 面板 JPanel
* 显示文本信息的标签 JLabel
* 文本框 JTextField
* 按钮 JButton
还涉及到线程Thread
先看效果图:
但是这里留一个问题?就是去除重复数字(可以自己先实现,后期我会上传的)
下面看看代码,代码中有注释,不懂留言:
package thread.test1;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
* 本程序模拟一个从1-32之间,随机抽取7组号码的抽奖程序
* 需要使用Java的图形界面知识
* 窗口 JFrame
* 面板 JPanel
* 显示文本信息的标签 JLabel
* 文本框 JTextField
* 按钮 JButton
*
* */
public class GoodLuck_1 extends JFrame {
JPanel pn1=null;
JPanel pn2;
JPanel pn3;
JTextField tf=null;
JLabel msg=null;
JButton btn1;
JButton btn2;
boolean flag=true;//用于判断是否继续输出出奖号码的标志。
//在构造器中,初始化界面
public GoodLuck_1(){
tf=new JTextField(40);//参数意思是,该文本框能够放多少个字符
pn1=new JPanel();
//组件放在面板上
pn1.add(tf);
//将面板放在窗口上,当前窗口对象就是this,放在顶部(上北)
this.add(pn1, BorderLayout.NORTH);
/*
* Java的JFrame对象,默然的布局管理器是“边界布局” 类名是BorderLayout
*
* */
msg=new JLabel("欢迎访问好运气抽奖程序!");
pn2=new JPanel();
pn2.add(msg);
//面板放在窗体上
this.add(pn2, BorderLayout.CENTER);
//底部的按钮部分
btn1=new JButton("开始");
//给开始按钮加入事件
btn1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//给出奖标志赋值
/*
flag=true;
chouJiang();
*/
/*
* 必须使用多线程技术,重新启动一个新的线程,去赋值flag
* 接着调用chouJiang(), 才可以是程序恢复响应。
* */
class ThreadStart extends Thread {
@Override
public void run() {
// TODO Auto-generated method stub
//在这里去调用抽奖方法
flag=true;
chouJiang();
}
}
//必须将上面的线程内部类,实例化,之后启动
new ThreadStart().start();
}
});
btn2=new JButton("停止");
//给停止按钮添加事件监听
btn2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//必须启动一个新的停止线程,才能终止无限循环
class ThreadStop extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
flag=false;
}
}
//启动上面的内部类线程
new ThreadStop().start();
}
});
pn3=new JPanel();
pn3.add(btn1);
pn3.add(btn2);
this.add(pn3, BorderLayout.SOUTH);
//设置窗口的属性
this.setTitle("好运气中奖程序1.0");
this.setSize(500, 400);
this.setLocation(100, 50);
//JFrame默认的关闭按钮,只是隐藏窗口,需要重写设计关闭功能
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
//chouJiang();
}
//对于一个复杂的任务,首先想到的是封装方法
public void chouJiang(){
/*
* 由于开始按钮启动后,什么时候停止,不确定,因此循环次数也不确定
* 需要使用while循环,而且开始就是无限循环
* */
String text=""; //作用是显示在文本框中的号码序列
while(flag){
/**
* 每次循环都是从1-32之间,随机抽取7组号码,拼成字符串
* 显示在文本框中
* */
text=""; //每次显示号码时,都重新显示新抽的号码
for(int i=0;i<7;i++){
int m=(int)(Math.random()*32+1);
if(m<10){
text=text+" 0"+m;
}
else {
text=text+" "+m;
}
}
//这里需要一点时间的停顿,否则循环太快,会出问题
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//显示在文本框中
tf.setText(text);
}
}
public static void main(String[] args) {
//在正在的开发中,main方法中的代码,越少越好。
new GoodLuck_1();
}
}
有需要的自己那过去试一试,玩一玩!
原文:http://www.cnblogs.com/julinhuitianxia/p/6921793.html
java抽奖窗口程序_java模拟一个抽奖程序相关推荐
- java抽奖程序_java模拟一个抽奖程序
今天用一个程序模拟一个从1-32之间,随机抽取7组号码的抽奖程序 * 需要使用Java的图形界面知识 * 窗口 JFrame * 面板 JPanel * 显示文本信息的标签 JLabel * 文 ...
- java的概率的程序_java实现一个抽奖概率类
在一些项目需求中,可能会遇到抽奖问题,如提供一系列奖品及获奖概率,要求根据概率返回每次抽到的奖品.以下是本人在实际项目中写的一个抽奖工具类,与大家共同分享: import java.util.Arra ...
- 嵌入式单片机基础篇(三十六)之STM32F1SPI标准接口程序以及模拟SPI标准接口程序讲解
STM32F1SPI标准接口程序以及模拟SPI标准接口程序讲解 一.SPI标准接口初始化: 1.SPI 内部结构简明图 2.上一篇文章提到,spi标准协议包含4条信号线.时钟相位.时钟极性.数据单字节 ...
- c语言计算二次函数顶点坐标,C语言编写一个求一元二次方程的实根的程序。 编辑一个小程序去做一元二次方程的求解(b^24ac)...
导航:网站首页 > C语言编写一个求一元二次方程的实根的程序. 编辑一个小程序去做一元二次方程的求解(b^2>4ac) C语言编写一个求一元二次方程的实根的程序. 编辑一个小程序去做一元二 ...
- 用java做一个模拟彩票程序_JAVA模拟----- 彩票机子-----抽奖过程的实例化
/* 时间: 2012-10-05 作者: 烟大阳仔 程序要求: 模拟彩票抽奖机的功能编写一个程序,实现随即输出六个号码 程序解释: 该段程序没有传递参数 */ class Day1005_Caipi ...
- java关闭窗口按钮_java swing 使用按钮关闭窗口
目的是给JButton添加点击操作,使指定JFrame窗口关闭. 网上不少说法是采用frame.dispose();的方法 但是采用frame.dispose();并没有使添加在frame上的wind ...
- python设计抽奖游戏 球_Python模拟轮盘抽奖游戏
题目如下: 模拟轮盘抽奖游戏 轮盘分为三部分: 一等奖, 二等奖和三等奖; 轮盘转的时候是随机的, 模拟本次活动1000人参加, 模拟游戏时需要准备各等级奖品的个数. #方法1: import ran ...
- java泡妞代码_java泡妞小程序
一个小小的程序 把这些天学习完后的知识运用于 这个小程序中 父类 Plan public abstract class Plan { private MeiZi meiZi; /*1.找目标 ...
- java修改窗口形状_java – 使用透明图像的AWT自定义窗口形状
我正在尝试使用AWT创建UI.我想只使用图像和透明组件.现在我无法理解如何制作一个主窗口,它应该是一个自定义形状的PNG图像.图像中透明的所有区域都用黑色替换.这是我使用的代码: public cla ...
最新文章
- java 文件路径问题_java 文件路径问题
- 启明云端用一张表格带你了解sigmastar SSD20x系列的区别!帮助你快速完成选型!
- [剑指offer][JAVA]面试题第[10-1]题[斐波那契数列][动态规划][记忆化递归]
- 各种机器学习的应用场景分别是什么
- 第四次作业随笔(计算器第二步)
- 平面设计中都有哪些风格?常用的风格有哪些?
- oracle px execute reply,(转)PX Deq: Execute Reply 案例说明
- 你可以穿裙子,但是请放长你的裙摆
- 软路由系统, OpenWrt (Lede), Ubuntu server, 爱快, ROS, Pfsense, m0n0wall, OPNsense
- 发布自己的开源库到Cocoapods及部分常见错误
- 2022-04-14 工作记录--LayUI-数据表格中固定列对应的合计部分也实现固定
- 江苏秦淮河清淤工程每天捞出五六吨漂浮物
- 金融科技巨头蚂蚁金服:香港和上海启动IPO程序
- selenium.common.exceptions.SessionNotCreatedException: Message: session not created exception: Missi
- 饥荒服务器模组全部显示冲突,饥荒联机版TGP多层世界服务端整合包及MOD添加设置教程_游戏堡...
- 用matlab绘制函数图形,matlab函数绘制 用matlab怎样绘制函数图形
- Solver lbfgs supports only 'l2' or 'none' penalties, got l1 penalty.解决办法
- [Story][Game]“理想恋人游戏”
- “宝石迷阵”中游戏算法实现
- android小程序日历,微信小程序:日历功能实现