java swing写的双色球摇奖机
最近没什么事,翻看以前的博客,看到在学校那会写的小程序,那时学软件开发的目的就是做GUI啊,现在这些仍是兴趣之一
偶然发现eclipse luna自带有一个windowbuilder,一个java 可视化图形设计插件,把程序改了改,加个线程控制,实现摇奖效果:
直接导出jar包,不用做任何修改,java的跨平台真不是盖的~mac下运行效果:
跟原生APP差不多,windows下效果就差远了,废话不多说,直接上代码:
package com.wenbo.swing;import java.awt.Color;
import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Arrays;
import java.util.Random;
/*** 双色球摇奖机* @author admin**/
public class DoubleBall extends JFrame implements ActionListener,Runnable{/*** */private static final long serialVersionUID = -6640921399000089279L;private JPanel contentPane;private JTextField redball;private JTextField blueball;private JButton startbutton ;private JButton stopbutton ;static DoubleBall frame;private Thread t;boolean isRun = true;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {frame = new DoubleBall();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public DoubleBall() {setTitle("双色球摇奖机");setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//setBounds(100, 100, 450, 300);contentPane = new JPanel();contentPane.setBackground(new Color(240, 240, 240));contentPane.setLayout(null);//不设置布局方式setContentPane(contentPane);t = new Thread(this);JLabel lblNewLabel = new JLabel("福彩双色球摇奖机");lblNewLabel.setBounds(146, 25, 123, 16);contentPane.add(lblNewLabel);JLabel label = new JLabel("红球:");label.setBounds(31, 72, 61, 16);contentPane.add(label);redball = new JTextField();redball.setBounds(66, 65, 186, 28);contentPane.add(redball);redball.setColumns(10);JLabel label_1 = new JLabel("蓝球:");label_1.setBounds(258, 72, 39, 16);contentPane.add(label_1);blueball = new JTextField();blueball.setBounds(293, 66, 61, 28);contentPane.add(blueball);blueball.setColumns(10);startbutton= new JButton("开 始");startbutton.setActionCommand("start");startbutton.addActionListener(this);startbutton.setBounds(135, 118, 117, 29);contentPane.add(startbutton);stopbutton = new JButton("停 止");stopbutton.setActionCommand("stop");stopbutton.addActionListener(this);stopbutton.setBounds(135, 155, 117, 29);contentPane.add(stopbutton);JButton resetbutton = new JButton("重 选");resetbutton.setActionCommand("reset");resetbutton.addActionListener(this);resetbutton.setBounds(135, 191, 117, 29);contentPane.add(resetbutton);}private void getOneTicket(){int redarray[] = new int[6];//new一个数组来存放红球Random r = new Random();int red_no =0;int blue_no = r.nextInt(16)+1;//蓝球号码int count =0;//生成个数while(count<6){boolean flag = true;red_no =r.nextInt(33)+1;for(int i=0;i<count;i++){if(redarray[i]==red_no){//如果已存在 跳出flag = false;break;}}if(flag){ //如果不存在 放入红球数组redarray[count]=red_no;count++;}}Arrays.sort(redarray);//从大到小排序StringBuilder sb = new StringBuilder();int temp;String str;for(int i=0;i<6;i++){temp = redarray[i];if(temp<10){//如果小于10 前面加10str = "0"+temp;}else{str = temp+"";}if(i==0){sb.append(str);}else{sb.append("-"+str);}}redball.setText(sb.toString());if(blue_no<10){//如果小于10 前面加0str = "0"+blue_no;}else{str = blue_no+"";}blueball.setText(str);}@Overridepublic void actionPerformed(ActionEvent e) {String command = e.getActionCommand();if(command.equals("start")){startbutton.setEnabled(false);stopbutton.setEnabled(true);if(isRun){t.start();}else{isRun = true;}}else if(command.equals("stop")){isRun = false;startbutton.setEnabled(true);stopbutton.setEnabled(false);}else{redball.setText("00-00-00-00-00-00");blueball.setText("00");isRun = false;startbutton.setEnabled(true);stopbutton.setEnabled(false);JOptionPane.showMessageDialog(frame, "奖池已清空,请按开始按钮重新开始~");}}@Overridepublic void run() {//使用线程实现滚动while(true){if(isRun){getOneTicket();try {Thread.sleep(100);//休眠0.1s} catch (InterruptedException e) {e.printStackTrace();}//}else{try {Thread.sleep(1000);//休眠1s} catch (InterruptedException e) {e.printStackTrace();}//}}}
}
java swing写的双色球摇奖机相关推荐
- 用C#(入门) 双色球摇奖机 随机数实现
这两天在深入学习C#.NET,正好同事做发财梦吵着去买彩票,于是心血来潮,利用昨晚工作空闲,写了一个双色球摇奖机的桌面程序. 程序在我的google论坛里了.下载地址如下(有点长:)): http:/ ...
- Java实现一个简单双色球摇奖功能
要求:摇出1-33之间的7个随机数,且数字不能重复 双色球用ArryList集合来存储 随机摇出双色球使用Random类nextInt()方法 @Testpublic void filedome17( ...
- 基于Java语言双色球摇奖过程的模拟实现
作者 | 顾北 对这个世界充满向往的理想主义者 基于JAVA语言编写,模拟实现双色球摇奖器摇奖过程,产生的有效号码与用户输入的有效号码对比,输出用户的中奖情况. 用户首先输入自己购买的双色球号码(其中 ...
- 用简单的Python语句写了个模拟双色球摇奖,希望能中。。
用简单的Python语句写了个模拟双色球摇奖,希望能中.. import random; #利用Python中的random.sample()函数实现 resultList = random.samp ...
- HTML: 网页摇奖机(抽号机)
HTML: 网页摇奖机(抽号机) 背景 一.需求分析 二.网页设计 1.界面设计 a. 取色 b.标题和背景 c.按钮与输入框 2.随机数逻辑设计 3.完整代码 三.效果展示 总结 背景 前两天回了趟 ...
- 摇奖机是按照金字塔的原理设计的
摇奖机是按照金字塔的原理设计的 摇奖机是按照金字塔的摇奖机是按照金字塔的原理设计的 摇奖机是按照金字塔的原理设计的 众所周知,摇奖机其实就是一台人工控制的计算机.双色球单次的销量如果不超过3000万元 ...
- 一点关于线程和摇奖机
一点关于线程和摇奖机 怎么说呢.第一呢.还是说一下什么是进程吧.进程呢就是一个正在执行的实例.它包含着一个运行程序需要的所有资源,进程之间是相互独立的,一个进程是没办法直接访问另外一个进程的数据的.然 ...
- IOS开发基础之摇奖机案例
IOS开发基础之摇奖机案例 // ViewController.m // 33-摇奖机器 // Created by 鲁军 on 2021/3/9. #import "ViewControl ...
- 网页摇奖机(抽号机)2.0
网页摇奖机(抽号机)2.0 背景 一.改进需求分析 二.改进代码 1.前端修改 2.后端修改 三.完整代码 走过路过点个赞赞吧QwQ! 背景 话说上回,我帮高中老师做了个抽号机,然后: 现在老师们的花 ...
最新文章
- python中字典dict的中的copy和deepcopy
- 想学 Java 的你,来看看这 20 个实战项目!
- Android官方命令深入分析之Device Monitor
- flask第十篇——url_for【3】
- 【Java源码分析】LinkedHashMap源码分析
- (0041) iOS 开发之几家第三方即时通讯
- 关于重构,看此文就够了
- UVa 11121 - Base -2 负进制的转化和推广
- 退格键删除input中光标指定的字符串_Linux中的vi 三种模式
- 当你看完这篇朴素贝叶斯(NB)算法后,是否会有怦然心动的感觉
- [Redis6]Redis相关知识介绍
- MySQL concat()函数
- linux 进城 管道丢数据,linux – 使用命名管道与bash – 数据丢失的问题
- Ralink5350开发环境搭建
- MariaDB通过命令行的方式导出指定数据库和还原指定数据库
- 见闻大量急救车急速行驶有感
- 超70家影视传媒单位联合500余位艺人倡议:立即清理未经授权短视频
- 常见问题解决方法汇总——十四届恩智浦智能车室外电磁越野组
- 回看科技股泡沫:区块链崛起恰逢其时,相当于1996年的互联网
- 前端工程师面试题详解(二)