• 运用多线程和GUI制作一个如下图的抽奖界面,随着点击按钮,开始随机选取手机号作为中奖用户。
  • 要用到两个线程,一个主线程,我们在创建一个子线程,使用wait()和notify()方法休眠与唤醒来实现抽奖时的暂停与继续。

运行界面:

点击开始,进行随机选号:

代码展示: 

package multithreading;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;public class Lottery extends JFrame {private JLabel l,l2;private JButton b;String []number={"18109780525","18290450569","13145678954","13596352525","12378984911", "12768738812", "18395678910", "17842365714","15699569782","17699818998","18044659078","18799870521"};public Lottery(){this.setTitle("手机号抽奖");this.setBounds(550,100,500,300);this.getContentPane().setBackground(Color.LIGHT_GRAY);l=new JLabel("随机摇号");l2 = new JLabel("中国体育彩票");l.setHorizontalAlignment(SwingConstants.CENTER);l2.setHorizontalAlignment(SwingConstants.CENTER);l.setForeground(Color.RED);l.setFont(new Font("宋体",Font.PLAIN,62));l2.setFont(new Font("黑体",Font.PLAIN,22));b=new JButton("开始");this.add(l,BorderLayout.CENTER);this.add(l2,BorderLayout.NORTH);this.add(b,BorderLayout.SOUTH);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myThread t=new myThread();b.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String str = b.getText();if (str.equals("暂停")) {t.changeflag1();b.setText("继续");} else {b.setText("暂停");t.changeflag2();}}});t.start();}class myThread extends Thread{boolean flag=true;public synchronized  void changeflag1(){flag=true;}public synchronized  void changeflag2(){flag=false;notify();}public  void run(){do {synchronized (this) {while (flag) {try {wait();} catch (InterruptedException e) {e.printStackTrace();}}}int i = new Random().nextInt(number.length);String name = number[i];l.setText(name);String substring = name.substring(name.length() - 4);l2.setText("恭喜尾号为:"+substring+"的用户,获得年度最佳鼓励奖。");} while (true);}}public static void main(String[] args) {new Lottery();}
}

java多线程和GUI实现抽奖界面相关推荐

  1. Java SE 6之GUI:让界面更加绚丽(上)

    Java是一种非常强大的编程语言,但Java的GUI能力一直是它的软肋.虽然Java提供2种图形解决方案,AWT和Swing.但这2种图形库的功能十分有限,使用它们并不能带来更多的用户体验.而且AWT ...

  2. java gui 结构_java gui教学图形界面的层次结构.ppt

    java gui教学图形界面的层次结构.ppt 还剩 13页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 事件 ...

  3. JAVA多线程解决哲学家问题(GUI演示)

    利用JAVA多线程与Swing编程制作GUI演示哲学家问题解决 感谢出现在GUI中的我以及我的四位室友并且感谢他们为我的程序设计提供一部分灵感让该演示显得不那么单调. 问题描述: 由Dijkstra提 ...

  4. java swing(GUI图形化界面)基础教程3-添加事件监听1

    学习此内容前建议先去学习java基础知识: 匿名内部类 (学的多的可以用lambda表达式,更加简便) 好, 我们先看一下之前的代码(即一个窗口和一个按钮) 如果想看详细内容,链接为: (23条消息) ...

  5. JAVA多线程抽奖程序

    功能:开始抽奖.暂停抽奖.继续抽奖.换头像.注册.随机图片.电话号等功能 1.创建一个界面并且添加监听器: (1)窗体 JFrame,按钮JButton,文本框TextField等基本组件 //窗体代 ...

  6. java多线程抽奖_java 线程池、多线程并发实战(生产者消费者模型 1 vs 10) 附案例源码...

    导读 前二天写了一篇<Java 多线程并发编程>点我直达,放国庆,在家闲着没事,继续写剩下的东西,开干! 线程池 为什么要使用线程池 例如web服务器.数据库服务器.文件服务器或邮件服务器 ...

  7. java 线程访问控件_C#多线程与跨线程访问界面控件的方法

    本文实例讲述了C#多线程与跨线程访问界面控件的方法.分享给大家供大家参考.具体分析如下: 在编写WinForm访问WebService时,常会遇到因为网络延迟造成界面卡死的现象.启用新线程去访问Web ...

  8. Java gui实现图形界面的日历万年历即Java实现日历代码

    今天给大家免费分享一下Java swing写的一个日历小程序,代码比较简单,实现了可以显示任何一年的日期信息,即万年历,代码只用了三个类,一个bean类实现基本的日期计算,一个界面类实现界面渲染,另一 ...

  9. Java多线程编程递增_java多线程编程之简介

    编写正确的程序很难,编写正确的多线程程序更难.如果对多线程理解的不够深入,编写出来的程序往往跟自己的预期不一样,甚至不知道问题出现在哪里.因此,如果想成为一个好的程序员,掌握多线程是必修的一门功课. ...

最新文章

  1. 数据库初学者_面向初学者的免费6小时数据科学课程
  2. 工业镜头与工业相机的接口
  3. git安装+错误:Failed to install ‘IRkernel‘ from GitHub: Git does not seem to be installed on your system
  4. 【c语言】蓝桥杯算法提高 算术运算
  5. Linux下C语言使用、编译与调试
  6. UVa1030 Image Is Everything
  7. Sherri Sparks
  8. 游戏中常用的寻路算法(5)预先计算好的路径的所用空间
  9. Ubuntu:查询计算机软硬件信息
  10. 罗永浩直播成绩单:3小时带货超1.1亿元,近5000万人来听相声
  11. 51nod 1046 A^B Mod C
  12. 内核和用户空间异步通信
  13. adc信噪比matlab测试代码,ADC测试matlab代码
  14. Tabular Editor学习笔记_2
  15. 古诺(Cournot)竞争博弈模型 matlab仿真代码实现
  16. 从苏宁电器到卡巴斯基第34篇:番外篇——晒一晒病毒分析师的桌面(上)
  17. win10清除系统激活密钥
  18. go mysql打印sql语句
  19. 马云常说要把阿里做到102岁,那么中国从古到今有多少家过百年的企业?
  20. 太极定二仪,清浊始以形:红黑树的实现和性质

热门文章

  1. 【机器人制作入门】 ① 自制机器人的架构
  2. 基于SSM的博客管理系统(mybatis逆向工程+简单CRUE)
  3. LED大屏互动的互动方式有哪些
  4. 注意力机制(四):多头注意力
  5. c 语言cad 二次开发,cad编程语言(AUTO CAD 得二次开发语言及工具)
  6. Unity应该如何学
  7. OBR Library for Android-SEO狼术
  8. android 使用https请求
  9. 一个Android动态权限的流式权限管理库EasyPermission,帮你申请动态权限
  10. shell编程之打印菱形图案