• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > Java线程实现抽奖

Java线程实现抽奖

作者: 字体:[增加 减小] 来源:互联网 时间:2018-08-06

通过本文主要向大家介绍了Java线程实现抽奖等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

抽奖界面(两个随机数和一个按钮控制抽奖开始和暂停,随机数个数自己选择性添加即可)

import javax.swing.JButton;
import javax.swing.JLabel;

public class Luckydraw {
	public static void main(String[] args){
		Luckydraw ld=new Luckydraw();
		ld.show();
	}
	public void show(){
		javax.swing.JFrame jf = new javax.swing.JFrame();
		jf.setTitle("抽奖");
		jf.setSize(600, 600);
		jf.setDefaultCloseOperation(3);
		jf.setLocationRelativeTo(null);
		java.awt.FlowLayout flow = new java.awt.FlowLayout();
		jf.setLayout(flow); 
		//界面基础设置
		JLabel jl1=new JLabel("中奖号码:");
		jf.add(jl1);
		JLabel jl2=new JLabel("0");
		jf.add(jl2);
		JLabel jl3=new JLabel("0");
		jf.add(jl3);
		//添加抽奖位数(2位)和页面提示字“中奖号码”
		JButton jbu1=new JButton("开始抽奖");
		jf.add(jbu1);
		
		jf.setVisible(true);
		Drawlistener dl=new Drawlistener(jl2,jl3);
		//添加监听器
		jbu1.addActionListener(dl);
	}

}

监听器

import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;

public class Drawlistener implements ActionListener{
	private JLabel jl2,jl3;
	private Drawthread dt;

    //构造方法传参,启动抽奖线程
	public Drawlistener(JLabel jl2,JLabel jl3){
	    this.jl2=jl2;
	    this.jl3=jl3;
	    dt=new  Drawthread(jl2,jl3);
        dt.start();
    }
	//按钮点击来控制线程暂停与否(bl=true则继续随机数,bl=false则暂停跳动,显示一个值)
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("开始抽奖")){
			JButton jbu=(JButton)e.getSource();
			jbu.setText("结束抽奖");
			dt.bl=true;
		}
		else{
			JButton jbu=(JButton)e.getSource();
			jbu.setText("开始抽奖");
			dt.bl=false;
		}	
		
	}
}

抽奖线程

import java.util.Random;
import javax.swing.JLabel;

public class Drawthread extends Thread{
	private JLabel jl2,jl3;
	private Random rd=new Random();
	public volatile Boolean bl=false;
	
	public Drawthread(JLabel jl2,JLabel jl3){
		this.jl2=jl2;
		this.jl3=jl3;
	}
	public void run(){
		while(true){
			//线程一直在循环中
			if(bl==true){
				//bl=false时不执行以下代码(即文本框内容不被改变,显示一个值)
		        int x2=rd.nextInt(10);
		        jl2.setText(x2+"");
		        int x3=rd.nextInt(10);
		        jl3.setText(x3+"");	
			}			 
		}
	}   
}

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-28java 算法之归并排序详解及实现代码
  • 2017-05-28java客户端Jedis操作Redis Sentinel 连接池的实现方法
  • 2017-05-28eclipse java工程改造为java web工程详解
  • 2017-05-28Java基于正则实现的日期校验功能示例
  • 2017-05-28JAVA SFTP文件上传、下载及批量下载实例
  • 2017-05-28spring 操作elasticsearch查询使用方法
  • 2017-05-28Java web含验证码及权限登录实例代码
  • 2017-05-28SWT(JFace)体验之FormLayout布局
  • 2017-05-28Java 读取外部资源的方法详解及实例代码
  • 2017-05-28Java装饰器设计模式_动力节点Java学院整理

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Spring-data-redis操作redis知识总结
    • Java数据结构之散列表(动力节点Java学院整理)
    • 详解springboot配置多个redis连接
    • Java经典排序算法之归并排序详解
    • java面试题之try中含return语句时代码的执行顺序详解
    • java 自己实现DataSource实现实例
    • 用java实现一个简易编译器1-词法解析入门
    • Java网络通信基础编程(必看篇)
    • Java集合之HashMap用法详解
    • java异步写日志到文件中实现代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有