Java swing 抽奖系统,窗体版本,完整源码 功能丰富,直接运行就行

今天为大家分享一个java语言编写的抽奖系统,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以,数据为MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。

系统框架

利用JDK自带的SWING框架开发。纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档。

主要功能

课题研究内容

抽奖是卖家以抽签的方法给买主奖品,是商人招徕顾客的一种手段。因此,抽奖的本质是一场互动营销,衡量其是否成功的标准不在于送出去多少奖品,或者单纯的吸引流量——而在于品牌的曝光,是一种维系品牌与用户关系的手段。通过系统来抽奖,可以保证抽奖的公平,公正的进行,同时通过计算机来操作,可以提高抽奖工作的效率。

1 创建一个文本文件,其中存放一些用户信息

2 通过单击开始按钮实现从文本种读取这些用户信息,并且读取每一条用户信息已滚动的方式信息的在

图形用户界面

3 在单击暂停按钮时实现暂停功能,单击保存按钮实现将当前用户界面上显示的用户信息写入一个指定

的文件中。

技术要求

基本要求:(1)熟悉Java的GUI设计和基本组件和部件;

(2)熟悉事件处理机制;

(3)完成抽奖系统的基本功能。

扩展要求:(1)设置文字的字体、字号、颜色,添加工具栏等;

(2)变量、方法命名符合规范;

(3)注释详细,程序层次清晰,可读性强。

功能要求

1 通过Excel导入参与抽奖人员的名单信息。人员包括姓名和手机信息

2 通过界面设置一等奖、二等奖、三等奖的个数

3 抽奖的不停滚动和暂停和继续

4 主界面显示中奖名单信息

5 导出终将信息为Excel

主要代码

抽奖核心部分代码

class ChooseThread extends Thread
{
        private boolean runFlag = true;//决定此线程是否运行的标记
        //需要该对象来读取文本框字段,不用创建它,申明下就好
        private ChooseAward chooseAward = null;
        private int time=0;
        //创建一个新的随机数生成器
        Random randomNumber = new Random();

        public ChooseThread(Object obj)
        {
                start();
                chooseAward = (ChooseAward) obj;
        }

       public void start()
        {
               runFlag = false;
                super.start();
        }

        public void changeflag_start()
       {
               runFlag = true;
                time++;//每点击一次加一
        }

        public void changeflag_stop()
        {
                runFlag = false;
        }

        /*
         *实现文本框滚动的效果
         */
        public void run()
        {
        
         while (runFlag)
                {
                        /*
                         * 返回一个伪随机数,它是从此随机数生成器的序列中取出的
                         * 、在 0(包括)和指定值(不包括)之间均匀分布的 int值
                         */
                        //返回向量中存储了几个号码的随便一个序号
                 int num;  
                 hidden h=new hidden();
                 int k=h.rand();
                    if(k>ChooseAward.getLevel())
                    {
                 num = randomNumber.nextInt(chooseAward.v_identNumber.size());
                   
                 //显示那个选中的序号对应的号码
                    chooseAward.t_identNumber.setText((String) chooseAward.v_identNumber
                                       .elementAt(num));
                    }
                    else if(k<=ChooseAward.getLevel()&&ChooseAward.getLevel()<10&&chooseAward.z_identNumber.size()>=1)
                    {
                     
                     num = randomNumber.nextInt(chooseAward.z_identNumber.size());
                     
                     //显示那个选中的序号对应的号码
                        chooseAward.t_identNumber.setText((String) chooseAward.z_identNumber
                                            .elementAt(num)+"****");
                        //chooseAward.z_identNumber.removeElementAt(num);
                    }
                    else if(ChooseAward.getLevel()<10)
                    {
                     num = randomNumber.nextInt(chooseAward.v_identNumber.size());
                    
                    //显示那个选中的序号对应的号码
                       chooseAward.t_identNumber.setText((String) chooseAward.v_identNumber
                                           .elementAt(num));
                    
                   }
                    else if(ChooseAward.getLevel()>=10&&time<=6)
                    {
                     num = randomNumber.nextInt(chooseAward.v_identNumber.size());
                     chooseAward.t_identNumber.setText((String) chooseAward.v_identNumber
                                 .elementAt(num));
                   }
                       try
                       {
                                sleep(50);
                       }
                        catch (Exception e)
                        {
                                e.printStackTrace();
                        }
                }
        }
}

导入excel部分核心代码

public class ReadExcel {
    
    public Vector<String> readExcel(String filePath) throws Exception {
        Vector<String> v = new Vector<String>(); // 存放读取出来的姓名和电话
        InputStream iStream = null;
        Workbook workbook = null;
        iStream = new FileInputStream(filePath);
        workbook = Workbook.getWorkbook(iStream);
        // sheet row column 下标都是从0开始的
        Sheet sheet = workbook.getSheet(0);
        int column = sheet.getColumns();
        int rows = sheet.getRows();
        System.out.println("共有" + rows + "行," + column + "列数据");
        for (int i = 1; i < rows; i++) {
            Cell[] cells = sheet.getRow(i);
            
                //System.out.println(cells[0].getContents());
                v.add(cells[0].getContents());
                v.add(cells[1].getContents());
                //System.out.println(cells[1].getContents());
                //v_identNumber.add(cells[1].getContents());
                //System.out.println(cells[2].getContents());
                //System.out.println(cells[3].getContents());
        }
        // 操作完成时,关闭对象,释放占用的内存空间
        if (iStream != null)
            iStream.close();
        if (workbook != null)
            workbook.close();

        return v;
    }
}

实现效果

1 主界面

2 导入抽奖名单

3 当前中奖情况

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值