首页>代码>java swing抽奖系统>/choujiang/src/youg/ChooseAward.java
package youg;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.StringTokenizer;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.filechooser.FileNameExtensionFilter;

public class ChooseAward extends JFrame
{
        /**
         *
         */
        //系统自动生成
        private static final long serialVersionUID = 7510608124693852355L;
        int width=0; int height=0;//窗口大小
        JButton b_start = new JButton("开始");
        JButton b_stop = new JButton("停止");
        JPanel p_north=new JPanel();
        JPanel p_center=new JPanel();
        JPanel p_south=new JPanel();
        JPanel dongzuo=new JPanel();

        //菜单栏
        JMenuBar menubar=new JMenuBar();
       
        //菜单项
        JMenu fileMenu=new JMenu("文件");
        JMenu setMenu=new JMenu("设置");
        JMenu helpMenu=new JMenu("帮助");
        JMenu aboutMenu=new JMenu("关于");
        
        /*
         * 菜单子项
         */
        private JMenuItem[] filem={new JMenuItem("选择文件"),new JMenuItem("另存为.."),
                        new JMenuItem("保存"),new JMenuItem("退出")
        };
        private JMenuItem[] filew={new JMenuItem("关于我们")};
        private JMenuItem[] fileh={new JMenuItem("查看帮助")};
        private JMenuItem[] files={new JMenuItem("设置标题"),new JMenuItem("设置背景")};
        
        JTextField t_identNumber = new JTextField(); // 手机号的文本域

        Vector<String> v_identNumber = new Vector<String>(); // 存放读取出来的号码

        Vector<String> v_name = new Vector<String>(); // 存放读取出来的人的姓名
        
        Vector<String> z_identNumber = new Vector<String>(); // 存放号码

        Vector<String> z_name = new Vector<String>(); // 存放姓名

        Vector<String> v_printident = new Vector<String>(); // 存放中奖人的信息
        Vector<String> v_printident1 = new Vector<String>(); // 存放中奖人的信息
        Vector<String> v_printident2 = new Vector<String>(); // 存放中奖人的信息
        Vector<String> v_printident3 = new Vector<String>(); // 存放中奖人的信息
        
        JLabel l_biaoti = new JLabel();

        JLabel l_information = new JLabel();

        JLabel l_identNumber = new JLabel();
        
        JLabel l_one = new JLabel("一等奖");
        JLabel l_two = new JLabel("二等奖");
        JLabel l_three = new JLabel("三等奖");
        
        JLabel l_jieguo_one = new JLabel();
        JLabel l_jieguo_two = new JLabel();
        JLabel l_jieguo_three = new JLabel();

        JLabel l_sysinformation = new JLabel("系统信息:");
        JFileChooser filechooser = new JFileChooser(); // 文件选择器
        ReadExcel re=new ReadExcel();//读取excel文件的类

        //选择随机数的线成
        public ChooseThread awardThread = null;
        private static int level=1;
        int chooseTime = 0; // 按下停止按钮的次数,也就是抽奖的次数
        contentPane contentP=new contentPane();
        public ChooseAward()
        {
                super("**抽奖系统");
                width=(int) (this.getScreenSize().getWidth());
                height=(int) (this.getScreenSize().getHeight()-40);
                contentP.setImgPath(Panel.class.getResource("/background/mubu.jpg"));                
                this.add(contentP);
                this.setSize(width, height);
                t_identNumber.setEditable(false);//设置手机号码区不可编辑
              
                //BorderLayout布局管理器,东,南,西,北
                contentP.setLayout(new BorderLayout());
                /*
                 * 给几个按钮和子菜单添加监听器
                 */
                //添加监听(选择文件)
                filem[0].addActionListener(new ActionListener()
                {
                        // 注册加载事件的监听器
                        public void actionPerformed(ActionEvent e)
                        {
                                b_loadident_ActionPerformed(e);
                                }
                        });
              //添加监听(另存为)
                filem[1].addActionListener(new ActionListener()
                {
                        // 注册加载事件的监听器
                        public void actionPerformed(ActionEvent e)
                        {
                                lc_loadident_ActionPerformed(e);
                                }
                        });
              //添加监听(保存)
                filem[2].addActionListener(new ActionListener()
                {      // 注册保存事件的监听器
                                        public void actionPerformed(ActionEvent e)
                                        {
                                                b_printaward_ActionPerformed(e);
                                        }
                                });
                //添加监听(退出)
                filem[3].addActionListener(new ActionListener()
                {      // 注册退出事件的监听器
                                        public void actionPerformed(ActionEvent e)
                                        {
                                                b_exit_ActionPerformed(e);
                                        }
                                });
                //添加监听(帮助)
                fileh[0].addActionListener(new ActionListener()
                {      // 注册帮助事件的监听器
                                        public void actionPerformed(ActionEvent e)
                                        {
                                                b_help_ActionPerformed(e);
                                        }
                                });
                //添加监听(设置标题)
                files[0].addActionListener(new ActionListener()
                {      // 注册设置标题事件的监听器
                                        public void actionPerformed(ActionEvent e)
                                        {
                                                b_setTitle_ActionPerformed(e);
                                        }
                                });
              //添加监听(设置背景)
                files[1].addActionListener(new ActionListener()
                {      // 注册背景事件的监听器
                                        public void actionPerformed(ActionEvent e)
                                        {
                                                b_setBack_ActionPerformed(e);
                                        }
                                });
              //添加监听(开始按钮)
                b_start.addActionListener(new ActionListener()
                {          
                        // 注册开始事件的监听器
                                        public void actionPerformed(ActionEvent e)
                                        {
                                                b_start_ActionPerformed(e);
                                        }
                                });
              //添加监听(停止按钮)
                b_stop.addActionListener(new ActionListener()
                {       // 注册停止事件的监听器
                                        public void actionPerformed(ActionEvent e)
                                        {
                                                b_stop_ActionPerformed(e);
                                        }
                                });
               //windows窗口关闭事件
                addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.exit(0);
                        }
                });
              //添加监听(关于)
                filew[0].addActionListener(new ActionListener()
                        {
                                // 注册加载事件的监听器
                                public void actionPerformed(ActionEvent e)
                                {
                                        about_loadident_ActionPerformed(e);
                                        }
                                });
                
                //添加文件子菜单
                for(int i=0;i<filem.length;i++)
                {
                        fileMenu.add(filem[i]);
                        //加入分隔线,为了美观
                        
                                fileMenu.addSeparator();
                }
                //添加设置子菜单
                for(int i=0;i<files.length;i++)
                {
                	     setMenu.add(files[i]);
                         //加入分隔线,为了美观                    
                	     setMenu.addSeparator();
                }
                //添加关于子菜单
                for(int i=0;i<filew.length;i++)
                {
                        aboutMenu.add(filew[i]);
                        //加入分隔线,为了美观
                        aboutMenu.addSeparator();
                }
                //添加帮助子菜单
                for(int i=0;i<fileh.length;i++)
                {
                        helpMenu.add(fileh[i]);
                        //加入分隔线,为了美观
                        helpMenu.addSeparator();
                }
                //将菜单条加入frame中
                menubar.add(fileMenu);
                menubar.add(setMenu);
                menubar.add(helpMenu);
                menubar.add(aboutMenu);
                
                setJMenuBar(menubar);
                
                
                /*将p_south设计为一个状态栏,显示一些操作过程中的信息
                 * 创建一个左对齐方式的流布局
                 */
                p_south.setLayout(new FlowLayout(FlowLayout.LEFT));
                p_south.setBackground(null);
                l_information.setForeground(Color.blue);
                p_south.add(l_sysinformation);
                p_south.add(l_information);
                contentP.add(p_south,BorderLayout.SOUTH);
                /*
                 * 设置的一些显示方式,字体,大小等,为了尽量美观一点
                 */
                Font biaoti=new Font("null",Font.BOLD,70);
                l_biaoti.setFont(biaoti);
                l_biaoti.setForeground(Color.pink);
                l_biaoti.setHorizontalAlignment(0);
                l_biaoti.setText("16XXXXXXXXXX");
                
                
                Font xingming=new Font("null",Font.PLAIN,30);
                l_identNumber.setFont(xingming);
                //字体的居中对齐
                l_identNumber.setHorizontalAlignment(0);
                l_identNumber.setText("姓名");
                
                
                Font number=new Font("null",Font.BOLD,30);//粗体
                t_identNumber.setFont(number);
                //设置字体颜色
                t_identNumber.setForeground(Color.gray);
                t_identNumber.setHorizontalAlignment(0);
                
                
                
                //给上面的jpanel设置布局
                dongzuo.setLayout(new GridLayout(1,2));
                dongzuo.setOpaque(false);
                b_start.setContentAreaFilled(false);// 设置透明
                b_start.setBorderPainted(false);
                b_stop.setContentAreaFilled(false);// 设置透明
                b_stop.setBorderPainted(false);
                dongzuo.add(b_start);
                dongzuo.add(b_stop);
                p_north.setLayout(new GridLayout(4,1));
                p_north.setOpaque(false);           
                p_north.setBackground(null);
                p_north.add(l_biaoti);
                p_north.add(l_identNumber);
                t_identNumber.setOpaque(false);
                t_identNumber.setBorder(null);
                p_north.add(t_identNumber);
                p_north.add(dongzuo);
                
                
                contentP.add(p_north,BorderLayout.NORTH);
                
                
                //给中间的jpanel 设置布局
                
                 
                p_center.setLayout(new GridLayout(6,1,0,0));   
                p_center.setOpaque(false);
                Font t_jieguo=new Font("null",Font.BOLD,25);//粗体
                Font jieguo=new Font("null",Font.BOLD,30);//粗体
                l_one.setFont(t_jieguo);
                l_one.setHorizontalAlignment(0);
                l_jieguo_one.setFont(jieguo);
                l_jieguo_one.setForeground(Color.black);
                l_jieguo_one.setHorizontalAlignment(0);
                
                
                l_two.setFont(t_jieguo);
                l_jieguo_two.setFont(jieguo);
                l_jieguo_two.setForeground(Color.black);
                l_jieguo_two.setHorizontalAlignment(0);
                l_two.setHorizontalAlignment(0);
                
                l_three.setFont(t_jieguo);
                l_jieguo_three.setFont(jieguo);
                l_jieguo_three.setForeground(Color.black);
                l_jieguo_three.setHorizontalAlignment(0);
                l_three.setHorizontalAlignment(0);
                
               // p_center.add(b_start);
               // p_center.add(b_stop);
                p_center.add(l_one);
                p_center.add(l_jieguo_one);
                p_center.add(l_two);
                p_center.add(l_jieguo_two);
                p_center.add(l_three);
                p_center.add(l_jieguo_three);
                
                contentP.add(p_center,BorderLayout.CENTER);
                
                
        }

        /*
         * 加载按钮事件方法
         */
        //选择文件事件
        public void b_loadident_ActionPerformed(ActionEvent e)
        {
        
        	FileNameExtensionFilter filter = new FileNameExtensionFilter("XLS","xls");//建立过滤器  
            filechooser.setFileFilter(filter);//开始过滤 
            filechooser.setCurrentDirectory(new File("D:/"));//设置默认目录 打开直接默认D盘
            filechooser.setDialogTitle("选择名单");     //自定义选择框标题
            //此方法会返回一个int值
            int m = filechooser.showOpenDialog(this); // 显示打开文件对话框
            /*
             * 确实所选择的是对话框上的确定按钮
             */
           if (m == JFileChooser.APPROVE_OPTION)// 点击对话框中打开选项
            {                                             
        	        Vector<?> vExcel=null;//用于接收读取出来的数据
                    File f = filechooser.getSelectedFile(); // 得到所选择的文件
                    String filePath = f.toString();
                    l_information.setText("数据加载中,请稍等...");
                    try {
                    	vExcel=re.readExcel(filePath);
                    	if (vExcel.size() > 0)
                        {
                            l_information.setText("数据加载完成!");
                        }else{
                        	l_information.setText("没有数据!");
                        }
                    	for(int i=0;i<vExcel.size();i++){
                    		v_identNumber.add((String) vExcel.elementAt(i));
                    		i++;
                            v_name.add((String) vExcel.elementAt(i));
                            
                            
                    	}
					} catch (Exception e1) {
						//System.out.println("格式中没有分隔符号出现的错误");
                        //JOptionPane.showMessageDialog(this, "导入的数据格式错误!");
                        l_information.setText("导入的数据格式错误!");
					}
                    
            }
        }
        //实现退出事件
        public void b_exit_ActionPerformed(ActionEvent e){
        	System.exit(0);
        }
        //实现更改标题事件
        public void b_setTitle_ActionPerformed(ActionEvent e){
        	JOptionPane.showMessageDialog(this, "QQ:609429837"+"\r\n"+"谢谢使用!");
        }
      //实现更改背景事件
        public void b_setBack_ActionPerformed(ActionEvent e){
        	FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG","jpg");//建立过滤器  
            filechooser.setFileFilter(filter);//开始过滤 
            filechooser.setCurrentDirectory(new File("D:/"));//设置默认目录 打开直接默认D盘
            filechooser.setDialogTitle("选择背景");     //自定义选择框标题
            //此方法会返回一个int值
            int m = filechooser.showOpenDialog(this); // 显示打开文件对话框
            /*
             * 确实所选择的是对话框上的确定按钮
             */
           if (m == JFileChooser.APPROVE_OPTION)// 点击对话框中打开选项
            {  
        	   File f = filechooser.getSelectedFile(); // 得到所选择的文件
        	   try {
				contentP.setImgPath(f.toURI().toURL());
			} catch (MalformedURLException e1) {
				e1.toString();
			}     
            }
        }
        //实现帮助事件
        public void b_help_ActionPerformed(ActionEvent e){
        	JOptionPane.showMessageDialog(this, "选择文件格式为第一列存放姓名第二列存放电话的excl文件(*.xls)"+"\r\n"
                                                +"中奖结果的保存格式为文本文档(*.txt)");
        }
//        public void bloadident_ActionPerformed(ActionEvent e)
//        {
//                int k = 0;
//                chooseTime = 0;
//                //从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取
//                BufferedReader reader = null;
//                //此方法会返回一个int值
//                int i = filechooser.showOpenDialog(this); // 显示打开文件对话框
//                /*
//                 * 确实所选择的是对话框上的确定按钮
//                 */
//               if (i == JFileChooser.APPROVE_OPTION)
//                { // 点击对话框中打开选项
//                        File f = filechooser.getSelectedFile(); // 得到所选择的文件
//                        System.out.print(f);
//                        try
//                        {
//                                l_information.setText("数据加载中,请稍等...");
//                                //读取字符流
//                                reader = new BufferedReader(new FileReader(f));
//                                //循环读取
//                               while (true)
//                                {
//                                        //读取一个文本行
//                                        String data = reader.readLine();
//                                        System.out.println(data);//开发时候测试用
////                                        读完了数据
//                                        if (data == null)
//                                        {
//                                            l_information.setText("数据加载完成!");
//                                            break;
//                                        }
//                                        
//                                        //通过“-”这个符号将 字符串分离为两部分,再存放到向量里面
//                                        Vector<String> v = this.apart(data, "-");
//                                        //System.out.println(data);//开发时候测试用
//                                        if (v == null)
//                                        {
//                                                l_information.setText("数据格式不正确,请重新加载!");
//                                                return;
//                                        }
//
//                                        /*
//                                         * 分别将分离开来的手机号码,和姓名分别放入两个可变向量当中
//                                         * 这里应该使用泛型,由于本人还没有熟练掌握泛型,姑且放之
//                                         *
//                                         *
//                                         * 捕获异常,看是否出现了格式错误,因为一般出现了格式错误
//                                         * 这两条语句都会发生无法取得元素的错误
//                                         */
//                                        try
//                                        {
//                                        v_identNumber.add(k, (String) v.elementAt(0));
//                                        v_name.add(k, (String) v.elementAt(1));
//                                        k++;
//                                        }
//                                        
//                                        catch(Exception e4)
//                                        {
//                                                System.out.println("格式中没有分隔符号出现的错误");
//                                                //JOptionPane.showMessageDialog(this, "导入的数据格式错误!");
//                                                l_information.setText("导入的数据格式错误!");
//                                                break;
//                                        }
//
//                                }
//                        } catch (Exception ex)
//                        {
//                                ex.printStackTrace(); // 输出出错信息
//                        }
//                }
//        }
        
        
        
        
        
        /*
         * 加载关于按钮的事件
         */
        //关于事件
        public void about_loadident_ActionPerformed(ActionEvent e){
        	JOptionPane.showMessageDialog(this, "QQ:609429837"+"\r\n"+"谢谢使用!");
        }
        //另存为事件
        public void lc_loadident_ActionPerformed(ActionEvent e)
        {
                chooseTime = 0;
                FileNameExtensionFilter filter = new FileNameExtensionFilter("TXT","txt");//建立过滤器  
                filechooser.setFileFilter(filter);//开始过滤    
                filechooser.setCurrentDirectory(new File("D:/"));//设置默认目录 打开直接默认D盘
                filechooser.setDialogTitle("保存中奖结果");     //自定义选择框标题
                filechooser.setSelectedFile(new File("request.txt")); //设置默认文件名

                //此方法会返回一个int值               
               int i = filechooser.showSaveDialog(this);// 显示保存文件对话框
              /*
                 * 确实所选择的是对话框上的确定按钮
                 */
                if (i == JFileChooser.APPROVE_OPTION)
               { 
                	// 点击对话框中打开选项
                       File f = filechooser.getSelectedFile(); // 得到所选择的文件
                       //文件重名问题
                       if (f.exists()) {                   	   
                    	   int copy = JOptionPane.showConfirmDialog(null,"是否要覆盖当前文件?", "保存", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);    
                    	   if (copy == JOptionPane.YES_OPTION){    
                    		   filechooser.approveSelection();    
                    		} else {
                        		filechooser.approveSelection();
                      	  }
                    	} 
                        try
                        {
                        	System.out.print(f);
                        	FileOutputStream fs_out = new FileOutputStream(f);
                            DataOutputStream out = new DataOutputStream(fs_out);
                            for (int m = 0; m < v_printident.size(); m++)
                            {
                                    System.out.println(v_printident.elementAt(m));//测试用
                                    out.writeUTF((String) v_printident.elementAt(m) + "\r\n");
                            }
                            out.close();
                            l_information.setText("文件保存成功..");
                        }catch (FileNotFoundException fe)
                        {
                            System.err.println(fe);
                     } catch (IOException ioe)
                     {
                             System.err.println(ioe);
                     }
               }

                        	
                                        /*
                                         * 分别将分离开来的手机号码,和姓名分别放入两个可变向量当中
                                        * 这里应该使用泛型,由于本人还没有熟练掌握泛型,姑且放之
                                         *
                                         *
                                         * 捕获异常,看是否出现了格式错误,因为一般出现了格式错误
                                         * 这两条语句都会发生无法取得元素的错误
                                         */
                                      
                                       
                                        

                   
                
        }
        
        /*
         * 启动按钮的事件
         */
        public void b_start_ActionPerformed(ActionEvent e)
        {
                //判断存储两个标记的向量中是否为空
                if (v_identNumber.size() <= 0 || v_name.size() <= 0)
                {
                       l_information.setText("数据没有加载,请加载数据!");
                }
                else
                {
                       if (chooseTime >= 6)
                        {                              
                                JOptionPane.showMessageDialog(ChooseAward.this, "抽奖已经结束,请保存结果");
                                b_start.setText("开始");
                                l_identNumber.setText("抽奖结束...");
                                awardThread.changeflag_stop();
                                l_information.setText("抽奖结束,若要再进行一次须重新启动程序!");
                                b_start.setEnabled(false);
                                b_stop.setEnabled(false);
                               
                       }
                        else//执行....
                        {
                               awardThread = new ChooseThread(this);
                               awardThread.changeflag_start();
                                l_information.setText("将产生:一(1名),二(2名),三(3名)等奖");
                                l_identNumber.setText("选取中...");
                                b_start.setEnabled(false);
                                b_stop.setEnabled(true);
                        }
                }
       }

       /*
         * 暂停按钮的事件
         */
        public void b_stop_ActionPerformed(ActionEvent e)
        {
                //将跳转的数字置于停止状态
               awardThread.changeflag_stop();
               String awardmessage = "";
               chooseTime++;//第几次按停止按钮
               String str_name = "";
               String message="";
                if(chooseTime>6&&getLevel()>=10)
               {
                t_identNumber.setText((String)z_identNumber.elementAt(0));
                }
                /*
                 * 根据第几次来按停止按钮来决定是产生几等奖
                 */
                switch (chooseTime)
                {
                case 1:
                case 2:        
                case 3://按前三次都是产生三等奖        
                        //寻找停止在号码框中的数字,是对应的的存放号码的向量中的第几个
                        for (int k = 0; k < v_identNumber.size(); k++)
                        {
                                //找到了对应的号码
                               if ((t_identNumber.getText()).equals(v_identNumber.elementAt(k)))
                                {
                                        //取出这个号码对应的名字
                                        str_name = (String) v_name.elementAt(k);
                                        //为防止下次抽的时候再抽到相同的号码,所以把它们从向量中移除掉
                                        v_identNumber.removeElementAt(k);
                                        v_name.removeElementAt(k);
                                        z_identNumber.removeElement(t_identNumber.getText());
                                        //z_name.removeElement(t_identNumber.getText());
                                        //z_name.removeElementAt(z_identNumber.indexOf(t_identNumber.getText()));
                                        break;//跳出循环
                               }
                        }
                        l_identNumber.setText("三等奖");
                        b_start.setText("继续");
                        //这是要输出到文本文件的信息
                        awardmessage = t_identNumber.getText() + str_name;
                        //将要打印的文本信息先存放到一个可变向量中
                        v_printident.addElement("三等奖  " + awardmessage);//系统提示说要使用泛型,本人不会用,以后再研究
                        v_printident3.addElement(awardmessage);
                        message = "第"+chooseTime+"位三等奖得主为:  "+str_name;
                        l_jieguo_three.setText(v_printident3.toString());
                        JOptionPane.showMessageDialog(this, message);
                        break;
                case 4:
                case 5:
                       for (int k = 0; k < v_identNumber.size(); k++)
                       {
                                if (t_identNumber.getText().equals(v_identNumber.elementAt(k)))
                               {
                                        str_name = (String) v_name.elementAt(k);
                                        v_identNumber.removeElementAt(k);
                                        v_name.removeElementAt(k);
                                        z_identNumber.removeElement(t_identNumber.getText());
                                        //z_name.removeElement(t_identNumber.getText());
                                        //z_name.removeElementAt(z_identNumber.indexOf(t_identNumber.getText()));
                                        break;
                                }
                        }
                        l_identNumber.setText("二等奖");
                        awardmessage = t_identNumber.getText() + str_name;
                        v_printident.addElement("二等奖  " + awardmessage);
                        v_printident2.addElement(awardmessage);
                        int serial=chooseTime-3;//第几位得主,排名序号
                        message = "第"+serial+"位二等奖得主为:  "+str_name;
                        l_jieguo_two.setText(v_printident2.toString());
                        JOptionPane.showMessageDialog(ChooseAward.this, message);
                        break;
                case 6:
                       for(int k=0;k<v_identNumber.size();k++)
                        {
                                if(t_identNumber.getText().equals(v_identNumber.elementAt(k)))
                                {
                                        str_name=(String) v_name.elementAt(k);
                                        v_identNumber.removeElementAt(k);
                                        v_name.removeElementAt(k);
                                        z_identNumber.removeElement(t_identNumber.getText());
                                        //z_name.removeElementAt(z_identNumber.indexOf(t_identNumber.getText()));
                                       break;
                                }
                        }
                        l_identNumber.setText("一等奖");
                        awardmessage = t_identNumber.getText() + str_name;
                        v_printident.addElement("一等奖  " + awardmessage);
                        v_printident1.addElement(awardmessage);
                        /*
                         * 第几位得主,排名序号,其实没必要这样写,因为本来就这一名
                         * 现在这样写的作用是为我以后改进这个程序(可以自主选择产生几名得奖主)
                        * 的时候做好准备
                         */
                        //serial=chooseTime-5;
                        //message = "第"+serial+"位二等奖得主为:  "+str_name;
                        message = "一等奖得主为:  "+str_name;
                        l_jieguo_one.setText(v_printident1.toString());
                        JOptionPane.showMessageDialog(ChooseAward.this, message);
                        t_identNumber.setText("");//设置文本为空
                        l_information.setText("此次抽奖全部结束,保存抽奖结果!");
                        break;
//                case 7:
//                        for (int k = 0; k < v_identNumber.size(); k++)
//                        {
//                               if (t_identNumber.getText().equals(v_identNumber.elementAt(k)))
//                               {
//                                       str_name = (String) v_name.elementAt(k);
//                                        v_identNumber.removeElementAt(k);
//                                        v_name.removeElementAt(k);
//                                        z_identNumber.removeElement(t_identNumber.getText());
//                                        //z_name.removeElement(t_identNumber.getText());
//                                        //z_name.removeElementAt(z_identNumber.indexOf(t_identNumber.getText()));
//                                        break;
//                                }
//                       }
//                        l_identNumber.setText("特等奖");
//                        awardmessage = "特等奖" + t_identNumber.getText() + str_name + "/r/n";
//                        v_printident.addElement(awardmessage);
//                        message = "特等奖得主为:  "+str_name;
//                        JOptionPane.showMessageDialog(ChooseAward.this, message);         
                        
//                        break;
                default:
                        JOptionPane.showMessageDialog(ChooseAward.this, "抽奖已经结束,请保存结果");
                        b_start.setText("开始");
                        awardThread.changeflag_stop();
                        break;
                }
                b_start.setEnabled(true);
                b_stop.setEnabled(false);
        }

        /*
         * 保存按钮的事件
         */
        public void b_printaward_ActionPerformed(ActionEvent e)
        {
                try
                {
                        FileOutputStream fs_out = new FileOutputStream("result.txt");
                        DataOutputStream out = new DataOutputStream(fs_out);
                        for (int i = 0; i < v_printident.size(); i++)
                        {
                               // System.out.println(v_printident.elementAt(i));//测试用
                                out.writeUTF((String) v_printident.elementAt(i) + "\r\n");
                        }
                        out.close();
                        l_information.setText("文件输出成功!保存在当前目录下..");
                } catch (FileNotFoundException fe)
                {
                       System.err.println(fe);
                } catch (IOException ioe)
                {
                        System.err.println(ioe);
                }

        }

        /*
         * 定义一个方法,将号码和名字分离开来
         */
        //一个是源数据文件,一个是分隔符号
        public Vector<String> apart(String src, String separator)
        {
                //使用了泛型,用可变向量来存放等到的标记
                Vector<String> v = new Vector<String>();
                /*
                 * string tokenizer 类允许应用程序将字符串分解为标记,祥见api文档
                 */
                //src是源字符串,separator是把src分隔为几段的标记
                StringTokenizer st = new StringTokenizer(src, separator);
                //测试此 tokenizer 的字符串中是否还有更多的可用标记
                while (st.hasMoreTokens())
                {
                        //返回此 string tokenizer 的下一个标记,并将它加入到可变向量中存放
                        v.addElement(st.nextToken());
                }
                return v;//返回向量
        }
        public Dimension getScreenSize() {
            return Toolkit.getDefaultToolkit().getScreenSize();
        }

		/*
         * 程序的入口
         */
        public static void main(String[] args)
        {
        	   
                //根据经验,这条语句只能在第一行
                JFrame.setDefaultLookAndFeelDecorated(true);
                
                ChooseAward award = new ChooseAward();

                award.setBackground(Color.red);
                award.setLocationRelativeTo(null);//居中显示
                award.setVisible(true);
                award.setAlwaysOnTop(true);//置顶
                award.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }

		public static int getLevel() {
			return level;
		}

		public static void setLevel(int level) {
			ChooseAward.level = level;
		}
}
//所有组件都在contentPane上面


最近下载更多
hfffff  LV1 6月3日
jiangqiang  LV12 1月16日
大神程序员  LV23 1月12日
fdo666  LV6 1月10日
sdfsdfsfsd  LV1 1月9日
fesfefe  LV13 2023年11月17日
VignyBear  LV2 2023年5月30日
ccc9527  LV1 2022年10月6日
姜广坤  LV14 2022年5月20日
wyx065747  LV67 2022年3月13日
最近浏览更多
hoictas  LV2 11月26日
15719908287  LV9 11月16日
qq216152  LV9 9月26日
2606940687  LV1 6月30日
qqqww11  LV2 6月26日
王东东  LV17 6月4日
hfffff  LV1 6月3日
yeshun 4月26日
暂无贡献等级
860421  LV3 4月18日
操作者 4月12日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友