1.抽奖小程序的制作,首先需要窗体的建立,利用Jtextarea文本框,以及多线程的运用

public class LotteryUI {public void initUI() {//界面的设置JFrame jf = new JFrame();//界面大小jf.setSize(500, 500);//界面名称jf.setTitle("小浩的抽奖小程序");//窗口关闭jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗体居中的展示jf.setLocationRelativeTo(null);//流动布局的设置jf.setLayout(new FlowLayout());//按钮在窗体的添加JButton jbu = new JButton("开始");jf.add(jbu);JButton jbu2 = new JButton("暂停");jf.add(jbu2);JButton jbu3 = new JButton("继续开始");jf.add(jbu3);//编辑文件,文本框的设置JTextArea jta = new JTextArea();Dimension ds=new Dimension(400,300);jta.setPreferredSize(ds);
//        jta.setPreferredSize(new Dimension(400, 300));jf.add(jta);//窗体可视化jf.setVisible(true);//监听器的添加和设置ButtonListener0219 listener = new ButtonListener0219(jf.getGraphics(), jta);jbu.addActionListener(listener);jbu2.addActionListener(listener);jbu3.addActionListener(listener);}public static void main(String[] args) {new LotteryUI().initUI();}
}

2.利用监听器来获取按钮上的内容来控制线程

public class ButtonListener0219 implements ActionListener {public Graphics g;//文本框的设置,与文本栏相区别,可以设置指定几行几列的文本框public LotteryThread lotteryThread;public JTextArea jta;//构造方法进行参数的传递,文本框以及画笔的传递public ButtonListener0219(Graphics g,JTextArea jta ) {this.g = g;this.jta = jta;}@Overridepublic void actionPerformed(ActionEvent e) {String name = e.getActionCommand();if ("开始".equals(name)) {if (lotteryThread==null){lotteryThread=new LotteryThread(g,jta);//开始启动线程lotteryThread.start();}}else if ("暂停".equals(name)) {//控制线程暂停lotteryThread.flag1=2;}else if ("继续开始".equals(name)) {lotteryThread.flag1=1;}}}

3.多线程运行,来实现滚动抽奖

//线程类
public class LotteryThread extends Thread{public int number ;public Graphics g;public JTextArea jta;public boolean flag=true;public int flag1=1;public LotteryThread(Graphics g,JTextArea jta ) {this.g = g;this.jta = jta;}//启动线程执行的方法:run方法执行完,该线程结束,一旦结束不能重新启动//不能手动调用public void run() {System.out.println("启动线程.." + this.getName());while(flag) {if (flag1==1) {//控制线程暂停number = (int) (Math.random() * 100);//设置当前组件所使用的字体和大小设置jta.setFont(new Font("宋体", 10, 68));jta.setText(number + "");// 随机数组System.out.println("随机:" + number);try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}else if (flag1==2){System.out.println("本轮的超级超级大奖的幸运数字为:"+number+"  让我们恭喜这位幸运观众");}}System.out.println("线程结束");}
}

4,效果如下

小浩之利用Java完成一个抽奖小程序相关推荐

  1. python连连看小游戏_利用Python制作一个连连看小游戏,边学边玩!

    导语 今天我们将制作一个连连看小游戏,让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 环境搭建 安装Python并添加到环 ...

  2. 用JAVA写一个画图小程序(JAVA 大作业)

    第一次写博客 且是稍微大点的程序 看看就行 重新写的在这,更加清晰明了:点击进入:用JAVA写一个画图小程序(JAVA 大作业)重排版本 设计思路 首先我直接去了Windows自带画图程序去实践模拟, ...

  3. android打地鼠设计报告,android开发中利用handler制作一个打地鼠小游戏

    android开发中利用handler制作一个打地鼠小游戏 发布时间:2020-11-25 15:21:11 来源:亿速云 阅读:136 作者:Leah 这期内容当中小编将会给大家带来有关androi ...

  4. python抽奖游戏_利用Python写一个抽奖程序,解密游戏内抽奖的秘密

    原标题:利用Python写一个抽奖程序,解密游戏内抽奖的秘密 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客 ...

  5. java完成一个学生信息调查程序_利用Java设计一个简单的学生信息管理程序

    利用Java设计一个简单的控制台学生信息管理程序 此程序可作为课设的参考,其中信息存储于文件中. 创建了学生类Student,用于存储学号等的信息.创建StudentFunction类,用于实现诸如学 ...

  6. html5 自动扣图,利用canvas实现一个抠图小工具

    本文作者:IMWeb 孙世吉 未经同意,禁止转载 利用canvas实现一个抠图小工具 0 前言 作为新一代的前端开发工程师,PS抠图切图已经不是必备技能了,我们有UI/交互/视觉等更专业的设计同学帮我 ...

  7. python制作阴阳师脚本_利用python制作一个阴阳师小游戏

    利用python制作一个阴阳师小游戏 发布时间:2020-11-27 13:59:49 来源:亿速云 阅读:84 这期内容当中小编将会给大家带来有关利用python制作一个阴阳师小游戏,文章内容丰富且 ...

  8. 面试必问:用 Java 写一个内存泄漏程序

    编译:ImportNew/唐尤华 原文链接:stackoverflow.com/questions/6470651/creating-a-memory-leak-with-java 问题: 刚参加的一 ...

  9. java编写一个个人通信录程序

    Java编写一个个人通信录程序,具有如下功能: (1)定义一个类,包括姓名.邮政编码.通信地址等成员变量 (2)查找:根据姓名在文件中查找个人信息,如果找到则显示出来 (3)添加:向文件中写个人信息 ...

  10. 利用C#编写一个水准测量近似平差程序

    一.代码界面展示 整个界面主要就是就整个界面而言,其实主要使用到的控件就是Menu,tabControl,dataGridView,richtextbox. 二.代码运算结果展示 1.导入数据 这里就 ...

最新文章

  1. CheckBox的使用(一):onCheckedChanged事件
  2. JavaScript在发送ajax请求时,URL域名地址是使用绝对地址还是相对地址?什么是浏览器跨域访问操作,js如何实现?
  3. 备考一天速通计算机三级网络技术
  4. 倒腾了一天的笔记-centos 部署jar包
  5. fork source exec区别差异
  6. 【转载】快速、可伸缩和流式的AJAX代理--跨域持续内容分发
  7. python3导入模块原理_Python模块导入机制与规范
  8. cdn节点人少延迟高_让你刷剧一直爽,CDN原理是什么
  9. c++ 转bcd码_8421BCD码转换为十进制
  10. javascript - 你不容错过的es6模板写法
  11. 创建一个地震Viewer
  12. unity中显示fps
  13. 《企业管理学》管理理论的产生于发展知识点总结
  14. 60.windbg----as、$u0(固定别名、自定义别名)
  15. 《安富莱嵌入式周报》第209期:2021.04.19--2021.04.25
  16. 2021-2025年中国军用浮桥行业市场供需与战略研究报告
  17. 【数据结构】查找算法
  18. shell脚本实践:自动清理文件,以时间方式形成路径的图片或者是Excel、pdf等文件
  19. mysql启动原理_MySQL 启动原理剖析
  20. 2021-10-26MT4、MT5如何加载使用EA和指标

热门文章

  1. css3学习手册思维导图
  2. 电驴搜索服务器正在连接,电驴 电驴连接不上服务器-完美教程资讯
  3. 概率论与数理统计加法公式
  4. ActivityManagerService启动过程
  5. 惠普服务器驱动自动安装步骤,惠普系统安装步骤的【详细介绍】
  6. Android混淆规则
  7. Visual Studio发生‘DLL Initialization Failed‘的解决方法
  8. adb shell settings(系统服务:settings)
  9. 数值核反应堆大数据及其应用
  10. SQL2000中文版打不上SP4提示用户验证没有通过