一、需求分析

  1. 显示候选人照片和姓名。

  2. 可以使用多种模式进行抽奖,包括一人单独抽奖、两人同时抽奖、三人同时抽奖。

  3. 一个人可以在不同的批次的抽奖中获取一、二、三等奖,但是不能在同一批次抽奖中获取多个奖项。

二、系统总体框架

  系统需求比较简单,采用Java Swing技术可以很好的实现,系统的总体类框架图如下

  

  说明:基于主要的三个类就可以完成所需要的功能,Frame有Panel类型与MouseAdapter类型的成员,Panel主要用户存放具体的控件和绘制相应的信息,MouseAdapter主要用于响应鼠标的点击操作。

三、系统实现细节

  1. 照片轮流显示效果 - 定时器

  既然是抽奖系统,所以一定要有让候选人图片滚动以起来的效果,那么如何实现呢?采用定时器即可,每100ms出发一次定时器,则可以让每100ms都显示不同候选者的照片和姓名。

  2. 同一候选人在同一批次不能获得多个奖项 - 循环算法

  在进行多人模式进行抽奖的时候,如何保证同一候选人不能获得多个奖项?使用一个循环算法即可,若随机生成的几个数相同,则重新生成,直到同一批次生成的数均不相同。

  3. 候选人照片与姓名如何对应 - 两个链表实现

  使用两个链表保证滚动的照片和姓名相对应,前提是照片名字是用候选人姓名+照片格式构成,如leesf.jpg。这样,在读取照片的时候也对照片名进行解析,提取出名字,并将照片和名字分别加入照片链表和姓名列表,这样,在取的时候直接同时取照片链表和姓名链表的相应项即可。

四、代码清单

  本系统代码已经上传到GitHub上。地址为:https://github.com/leesf/LuckDrawSystem.git欢迎各位园友fork和下载。

五、运行截图

  

  系统界面

菜单栏

六、总结

  一个非常简单的抽奖系统,读者有需要的可以根据自己的需求去进行修改。谢谢各位园友的观看~

  

  

【小型系统】抽奖系统-使用Java Swing完成的更多相关文章

  1. java小项目——抽奖系统

    来了来了!这不又到考试周了吗!愁人,又得复习,复习,复习!这段时间每天都在复习线代和高数!(说是复习,说实话其实是在预习,啊哈哈哈哈哈),得有一段时间都没有学到新的知识了,代码感觉都生疏了,惆怅.博客 ...

  2. java小项目之:抽奖系统!java初学者必备(内附源码)

    [Java]Java摇奖源码,Java抽奖源码,Java随机抽奖源码 任务描述 本次任务要求为某商场开发一套幸运抽奖系统,客户必须首先注册成为该商场会员,会员登录成功后,就可以参加抽奖活动了.注册 用 ...

  3. 「影院售票系统」 · Java Swing + MySQL JDBC开发

    目录 文档说明: 一.语言和环境 二.实现功能 三.数据库设计 四.具体要求及推荐实现步骤 五.注意事项 六.评分标准 实现代码: 一.数据库: 二.Java Swing: com.ynavc.Bea ...

  4. JS组件系列——图片切换特效:简易抽奖系统

    前言:前两天在网上找组件,无意中发现了我们儿时游戏机效果的“SlotMachine组件”,浏览一遍下来,勾起了博主小时候满满的回忆.于是下定决定要研究下这么一个东西,不得不再次叹息开源社区的强大,原来 ...

  5. PPT图片双屏抽奖系统现场主要操作流程介绍

    目录 第一步:前期准备工作 第二步:现场预备与辅助展示工作 第三步:现场正式抽取工作 PPT图片双屏抽奖系统-现场抽奖视频实录 第一步:前期准备工作 把第二个步骤优化处理制作好的PPT文件 [图片.p ...

  6. [C#]使用RabbitMQ模拟抽奖系统的例子

    背景:在实际的项目中,经常有客户需要做抽奖的活动,大部分的都是注册送产品.送红包这些需求.这都是有直接的利益效果,所以经常会遇见系统被盗刷的情况,每一次遇见这种项目的上线都是绷紧神经,客户又都喜欢在过 ...

  7. centos tomcat/resin安装配置 卸载系统自带的java tomcat安装配置 安装JDK resin安装配置 第二十八节课

    centos  tomcat/resin安装配置  卸载系统自带的java  tomcat安装配置  安装JDK   resin安装配置    第二十八节课 tomcat和java都不需要编译 tom ...

  8. 用Javascript轻松制作一套简单的抽奖系统

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> <html> <head ...

  9. 基于Map的用户注册、登录、抽奖系统

    期望功能 方法设计 1.类的设计: 定义两个参与者的属性: private String username; private String userpassword; 2.注册方法: public v ...

随机推荐

  1. java分割字符串

    经验分享: 1.分隔符为“.”(无输出),“|”(不能得到正确结果)转义字符时,“*”,“+”时出错抛出异常,都必须在前面加必须得加"\\",如split(\\|); 2.如果用& ...

  2. 对初学者的MPLS 常见问题

    对初学者的MPLS 常见问题 2015年6月8日 16:04 阅读 186 问:什么是多协议标签交换 (MPLS)? 答:MPLS是一种数据包转发技术,该技术使用标签来做出数据转发决策. 利用MPLS ...

  3. windows 配置 apache + php

    需要工具 apache  下载地址 php for windows  (与apache同版本,使用线程安全)下载地址 vc (Visual Studio C++) 根据 apache 与 php 的版 ...

  4. phpmyadmin Wrong permissions on configuration file, should not be world writable!

    巴拉巴拉,实际场景是这样,因为有需要,所以想用django 做个rest服务给其他平台提供服务,发现以前正常的页面都无法运行,奇怪发现有一个页面提示连接不上mysql 难道mysql挂了,打开phpm ...

  5. Java多线程14:生产者/消费者模型

    什么是生产者/消费者模型 一种重要的模型,基于等待/通知机制.生产者/消费者模型描述的是有一块缓冲区作为仓库,生产者可将产品放入仓库,消费者可以从仓库中取出产品,生产者/消费者模型关注的是以下几个点: ...

  6. [nRF51822] 5、 霸屏了——详解nRF51 SDK中的GPIOTE(从GPIO电平变化到产生中断事件的流程详解)

    :由于在大多数情况下GPIO的状态变化都会触发应用程序执行一些动作.为了方便nRF51官方把该流程封装成了GPIOTE,全称:The GPIO Tasks and Events (GPIOTE) . ...

  7. 案例研究:CopyToAsync

    返回该系列目录<基于Task的异步模式--全面介绍> 把一个流拷贝到另一个流是有用且常见的操作.Stream.CopyTo 方法在.Net 4中就已经加入来满足要求这个功能的场景,例如在一 ...

  8. java ExecutorService

    ExecutorService 通常Executor对象会创建并管理一组执行Runnable对象的线程,这组线程被称为线程池,Executor基于生产者-消费者模式.提交任务的执行者是生产者(产生待完 ...

  9. JavaScript-分支语句练习

    -1.方程 ax^2+bx+c=0,一元二次方程求根情况. 解: <head><meta http-equiv="Content-Type" content=&q ...

  10. [SpringMVC]SpringMVC学习笔记一: springmvc原理及实例解析.

    前言:今天来回顾下SpringMVC的开发原理, 使用图文并茂的方式 来解析其中的内幕, 我相信懂了其中的运行机制后, 对于面试中SpringMVC大家都可以说so easy了. 一, 图示法 第二张 ...