java:Swing(1)模拟随机抽签

用java制作一个简易抽签器 最近闲来无事,想用Java编写一个随机抽签器,最终编写后的运行结果是这样的 下面说一下怎么具体实现,非常简单。 首先,要想出现这个滚动标签,首先必须要有一个窗口来承载它,所以要在main()方法中创建 出来一个窗口,位置和大小都可以自定义,合适即可。 JFrame jf = new JFrame("随机抽签器"); jf.setLocation(500, 200); jf.setSize(300, 300); jf.setResizable(false); jf.setDefaultClose 阅读详情
package SwingBasicStudy;


import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Random;
import java.util.concurrent.TimeUnit
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

/* 模拟随机抽签过程,
 * */
 //定义一个随机生成器接口;
interface Generator2<T>{
    T next();
}
//用于现实游戏用户头像的随机生成
class MemberImages implements Generator2<File> {

    @Override
    public File next() {
        //把文件中图片加到map集合中
        HashMap<String,File> fileMap = 
            new HashMap<String, File>();
        File[] files = new File("img").listFiles();
        ArrayList<String> names = new ArrayList<String>();
        for(File f:files){
            names.add(f.getName());
            fileMap.put(f.getName(),f);
        }

        File file = fileMap.get(names.get(
            new Random().nextInt(files.length)));
        return file;
    }

}
public class RandDrawLotsGameTwo {
    public static void ini(){
        JFrame frame = new JFrame("Random Draw Lots Game");
        JLabel label = new JLabel("Ready Go:");
        JLabel label2 = new JLabel("name");
        JButton button  = new JButton("随机抽签");

        //设置布局管理:
        GridBagLayout gl = new GridBagLayout();
        frame.setLayout(gl);

        frame.add(label);
        frame.add(label2);
        frame.add(button);

        //是用来控制添加进的组件的显示位置  
        GridBagConstraints s= new GridBagConstraints();//定义一个GridBagConstraints,  
        s.fill = GridBagConstraints.NONE;  
        //该方法是为了设置如果组件所在的区域比组件本身要大时的显示情况  

        s.gridwidth=0;//该方法是设置组件水平所占用的格子数,
        s.weightx = 1;//该方法设置组件水平的拉伸幅度,
        s.weighty=1;//该方法设置组件垂直的拉伸幅度,
        gl.setConstraints(label, s);//设置组件  

        s.gridwidth=0;
        s.weightx = 1;
        s.weighty=1;
        gl.setConstraints(label2, s); 

        s.gridwidth=0;  
        s.weightx = 0;  
        s.weighty=1;  
        gl.setConstraints(button, s);  
        //给按钮增加点击事件:
        class ButtonListener implements ActionListener{
            private int count=1;
            public void actionPerformed(ActionEvent e) {

                    File file = new Resourse().next();
                    ImageIcon icon = new ImageIcon(file.getAbsolutePath());
                    label.setText("");
                    label.setIcon(icon);

                    String fileName = file.getName();
                    String name = fileName.substring(
                        0, fileName.length()-4);
                    label2.setText("第 "+ count++ +
                        " 次抽签的幸运号是: "+name);

                    try {
                        TimeUnit.SECONDS.sleep((long)0.5);
                    } catch (InterruptedException e1) {
                        e1.printStackTrace();
                    }
            }
        }           

        //在按钮上注册这个事件:
        button.addActionListener(new ButtonListener());


        //设置默认关闭动作
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置窗体大小
        frame.setBounds(300, 100, 100, 200);
        frame.setSize(600,500);
        frame.setVisible(true);
    }


    public static void main(String[] args) throws InterruptedException {
        ini();
    }   

}



运行结果展示:
这里写图片描述
这里写图片描述

java实现抽签抓阄(附完整源码) 阅读详情

相关推荐

基于java swing随机抽签程序

随机数抽签程序!已打包成双击可运行的exe程序; 也可以直接找到源码中的jar包,在java环境中使用java -jar jar包名称 运行查看

JAVA 随机抽签

大学宿舍,抽签买饭。 班主任,随机抽取一名幸运同学,回答问题。 ......

m0_62836082的博客 702

java抽签源码java swing的随机抽签程序含实例

最简单的随机数抽签程序!wwenxue.com已打包成双击可运行的exe程序! 基于java swing编写,功能相当简单!非常完美。!大家可以下载测试

Java实现无重复抽签,人数可以自定义

Java实现无重复抽签,人数可以自定义

lanling_wu的博客 1620

基于java swing的随机抽签程序(附源码) by Empty

design by Empty 一个最简单的随机数抽签程序!已打包成双击可运行的exe程序! 基于java swing编写,功能相当简单!! 就是点击roll产生一个0~100的随机数先到jTextField,再点击再显示一个!!基本满足简单的随机抽签!! 项目采用netbeans6.9开发~~源码也一并附上!!请多指教~~ 之后还会有稍微复杂点的推出~~~^_^

java编写的自动抽签程序

很好玩且适用java编写的自动抽签程序. 一下便知道了。。。。

Java实现随机抽奖的方法有哪些

在Java中实现随机抽奖的方法,通常我们会使用类来生成随机数,然后基于这些随机数来选择中奖者。本文给出了几种常见的随机抽奖实现方式,包括从数组中抽取、从列表中抽取以及基于权重的抽奖方式。

m0_72958694的博客 764

java抽签小程序下载

抽签小程序,可以用于各种需要进行抽奖、抽签的场合。只需要点几下鼠标,您就可以方便快速地搞定联欢、聚会的抽奖环节。

java抽签_java制作一个简单的抽签程序

首先需要导入import java.util.Random;才能使用随机类Random;Random生成随机数介绍:https://www.cnblogs.com/prodigal-son/p/12805183.html代码注释写得非常详细应该都可以看得懂的非常简单package draw;import java.util.Random;import java.util.Scanner;/*** ...

weixin_40005795的博客 1968

MFC停靠窗口实战:CDockablePane从创建到控件布局的完整指南(附残影问题排查)

本文提供了MFC中CDockablePane停靠窗口的完整实战指南,涵盖从自定义窗格类创建、主框架集成、内部控件布局到高级功能定制的全过程。针对开发中常见的“残影”视觉问题,文章深入剖析了其根源,并给出了系统性的排查步骤与解决方案,帮助开发者构建稳定、专业的可停靠用户界面。

sun99的博客 613

matlab电容式传感器仿真,差动电容式位移传感器的仿真研究

设计了一种差动电容式位移传感器,主要对传感器的数学模型及电容检测电路进行了仿真研究。其中检测电路设计主要包括正弦激励电路、转换桥路、信号放大电路、精密整流电路和滤波电路。最后利用Matlab/SimurFnk软件对所设计的系统进行仿真,并分析了传感器性能。仿真研究表明,传感器及其检测电路具有合理性,测量范围内具有很好的线性度。0|| I≯ lat on ii{差动容尊翩’亘研发注:湖南省教育厅资...

weixin_36323601的博客 1389

JS抽签程序

为大家分享一个简单的JS实现的抽签程序: JS代码如下: var names = [ "名称一", "名称二", "名称三", ]; var time; function begin(){ document.getElementById("btnBegin").disabled = true; chouqian(); } function chouqian(){ var index = Mat

明明的博客 7867

光致发光(Photoluminescence, PL)入门版

关于光致发光的实际应用做出一些解释。

sinat_40546227的博客 1万+

基于Java Swing的幸运抽签工具(2)

摘要:本文介绍了一个基于Java Swing开发的随机抽签程序,采用BorderLayout布局分为顶部展示区、中部输入区和底部控制区。程序使用洗牌算法实现公平随机抽取,支持多线程动画效果(快速滚动和减速动画)和去重功能。关键技术包括:1)Fisher-Yates洗牌算法随机抽取;2)物理减速动画模拟;3)LinkedHashSet去重;4)多线程UI更新。程序通过边界测试和兼容性测试,支持全屏切换、文件导入等功能,适用于不同JDK版本和操作系统环境。

m0_66818464的博客 716

Qt界面美化-飞扬青云自绘控件插件的使用-避免采坑

1、先上一个集成到QtCreater中的效果图: 2、飞扬青云自绘控件插件下载地址:https://gitcode.net/mirrors/feiyangqingyun/qucsdk?utm_source=csdn_github_accelerator 3、集成插件到QtCreater中的方法: (1)、查看自己使用的QtCreater的版本信息,我的:Qt 5.15.2 MSVC2019 64位 (2)插件下载下来后工程预览: 我选择msvc版本的SDK,打开找到匹配的SDK:...

小米的修行之路 2788

YOLOv11与CLIP融合的零样本目标检测技术:原理、实现与创新实践

YOLO(You Only Look Once)系列作为单阶段检测器的代表,以其实时高效的特性在工业界获得广泛应用。YOLOv11作为该系列的最新演进,引入了多项架构创新: C3K2模块:采用双小卷积核替代传统大卷积核,在保持感受野的同时减少计算量。当参数c3k=False时退化为YOLOv8的C2F模块,提供灵活的精度-效率权衡。 C2PSA(Convolutional block with Parallel Spatial Attention):通过并行空间注意力机制增强对微小目标的特征提取能力,这对

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1068

基于Java Swing的幸运抽签工具(1)

《幸运抽签工具》是一款基于JavaSwing开发的桌面应用,提供公平随机的抽签功能。支持批量导入候选人名单(TXT文件)、设置抽取人数(1-99人),具备动画效果、去重、抽后移除等功能。特色包括全屏模式切换、大字体展示结果以及多人结果自动排版。适用于各类抽奖场景,界面简洁,操作便捷,兼容JDK8+环境。

m0_66818464的博客 483

【云原生】阿里云SLS日志自定义字段标签实现日志告警

样例:一个典型的java log初始化日志格式把日志中的INFO提取出来做为一个标签,在开源日志框架中,配置采集器实现- regex:在阿里云SLS日志服务同样可以实现,首先我们进入到一个日志库,查看数据接入,我这里使用的是Logtail工具在【处理配置】中,选择【处理插件组合】,新增提取字段插件原始字段:填写要被提取的日志,对应原始字段的内容做正则结果字段:正则表达式对应的捕获组对应结果:捕获组 匹配内容 说明1 ywgy-app-service 服务名称。

CN_Eden 742

乐透抽奖模拟

程序演示:输入五个抽奖数(quickpick复选框为快速生成,personal为自己编辑),点击play程序开始,中奖情况统计在下方,默认每周开一次大乐透,drawings表示开奖次数。 源程序包括界面类文件和事件类文件。 界面类LottoMadness:  import java.awt.*; import javax.swing.*; public class LottoMadn...

maxiansen的博客 896

ATECC508A芯片开发笔记(三):获取508A串号、随机数源码及I2C抓包分析

ATECC508A芯片开发笔记(三):读取508A串号、获取随机数源码及I2C抓包分析 APP层函数编写及源码分析 At508_GetSernum() GetSernum抓包记录 At508_GetRandom( ) GetRandom抓包记录 经过前两章节,CryptoAuthlib库已经成功适配在代码中了,下面简单测试一下API函数,并分析下I2C通讯流程: APP层函数编写及源码分析利用li

HowieXue 薛永浩的博客 2万+

Python爬虫实战:全方位解析前程无忧(51job)职位详情爬取及反爬破解

平台规模:覆盖全国各行业、数百万条岗位信息。数据特点:职位描述详细,职位标签丰富。数据价值:支持招聘趋势分析、职业发展研究、薪资行情调研。推荐Python 3.10+,支持最新async特性与库兼容。

2201_76125261的博客 1486

java抽签_java  抽签程序  【滚动抽签】

总的说来,这是第一次写这种文章。由于学校要求做有关GUI的东西,我决定学习一下JAVA有关的知识。初学JAVA,写了点东西,纪念一下。不过贴代码的时候总害怕被鄙视,这么长时间也基本上没写多少代码,代码能力很弱,凑合着看吧。同时也想借机好好练习练习敲代码的能力~这个程序的主要功能是随机抽取,屏幕出现滚动条,按下开始,就出现滚动,就像电视上那种,看起来比较逼真吧,每次都是随机抽取的。按停,就在屏幕上产...

weixin_42358594的博客 1310

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

84452抽签Java版

import java.util.HashMap; import java.util.Map; import java.util.Random; public class Test { public static void main(String[] args) { Map<Integer, Map<Integer,String>> map = new HashMap(); Map<Integer,String> A = .

yiyuzz的博客 747

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

如何用Java编写一个简易抽奖程序

一个简易的 Java 抽奖程序的示例。这个程序使用 Random 类来生成随机数,模拟从一组参与者中抽奖的过程。允许多次抽奖,每次都从剩余的参与者中选择一个。

程序猿老白~的博客 1144

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java实现抽签抓阄(附带源码)

java实现抽签抓阄(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1404

java小项目:抽签小程序

介绍 分别有A、B两组。尽量让您手中的项目抽中同一组,但是出厂的顺序不同 注意 1.建立的java文件,要与代码中的public class 名相同 2.package 包名; 要与自己建立的相同 3.通过下面标红的A、B两组总的容纳空间 源代码 package program; import java.io.*; import java.util.Random; import java.util.Scanner; public class test { public static void main(

✈ 正在努力 の 寒江(StudiousTiger) ✌ 呐 ✈ 2112
上一篇: java数据结构:排序算法(1)
下一篇: Oracle数据库:下载与安装图解
Coder-Qian
博客等级 码龄11年 63粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值