栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java利用数组随机抽取幸运观众如何实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java利用数组随机抽取幸运观众如何实现

编写程序,事先将所有观众姓名输入数组,然后获得数组元素的总数量,最后在数组元素中随机抽取元素的下标,根据抽取的下标获得幸运观众的姓名。

思路如下:

定义输入框的按键事件,使用KeyEvent类的getKeyChar()函数判断其是否是回车字符,若不是则不作处理;
使用isEmpty()函数判断文本框中是否有字符串,如果没有字符串则不做处理;
若为合法输入则通过Jtextarea类的append()方法把输入人名与回车符添加到人员列表;
使用selectAll()方法选择文本框所有字符;
定义点击“抽取”按钮时执行的函数,通过Jtextarea类的getText()方法获取人员列表文本,存入字符串;
创建一个字符串型一维数组,将之前的字符串按回车符分割后存入该数组;
通过Math.random()生成随机数组索引,作为中奖者的数组下标;
定义包含格式参数的中奖信息;
通过String类的format()方法为中奖信息添加人员参数;
使用Jtextarea类的setText()方法在文本域显示中奖信息;
定义点击“退出”按钮时执行的函数,使用System.exit(0)方法退出程序。
代码如下:

复制代码 代码如下:
package cn.edu.xidian.crytoll;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.Jtextarea;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;

public class ArrayExample {

    private Jframe frame;
    private JTextField textField;
    private JScrollPane scrollPane;
    private JLabel label_1;
    Jtextarea textarea = new Jtextarea();
    private Jtextarea textarea_1;

   
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ArrayExample window = new ArrayExample();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

   
    public ArrayExample() {
        initialize();
    }

   
    private void initialize() {
        frame = new Jframe("利用数组随机抽取幸运观众");
        frame.setBounds(100, 100, 500, 300);
        frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        JLabel label = new JLabel("u8F93u5165u5728u573Au89C2u4F17u59D3u540Du6309u56DEu8F66");
        label.setBounds(10, 10, 132, 15);
        frame.getContentPane().add(label);

        textField = new JTextField();
        textField.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                do_textField_keyPressed(e);
            }
        });
        textField.setBounds(10, 35, 132, 21);
        frame.getContentPane().add(textField);
        textField.setColumns(10);

        scrollPane = new JScrollPane();
        scrollPane.setBounds(10, 66, 132, 185);
        frame.getContentPane().add(scrollPane);    

        textarea_1 = new Jtextarea();
        scrollPane.setViewportView(textarea_1);

        label_1 = new JLabel("u9009u53D6u89C2u4F17u4EBAu5458uFF1A");
        label_1.setBounds(180, 10, 132, 15);
        frame.getContentPane().add(label_1);

        
        textarea.setBounds(180, 34, 214, 217);
        frame.getContentPane().add(textarea);

        JButton button = new JButton("u62BDu53D6");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                do_button_actionPerformed(e);
            }
        });
        button.setBounds(404, 187, 70, 23);
        frame.getContentPane().add(button);

        JButton button_1 = new JButton("u9000u51FA");
        button_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                do_button_1_actionPerformed(e);
            }
        });
        button_1.setBounds(404, 228, 70, 23);
        frame.getContentPane().add(button_1);
    }
    protected void do_textField_keyPressed(KeyEvent e) {
        if (e.getKeyChar() != 'n')// 不是回车字符不做处理
            return;
        String name = textField.getText();
        if (name.isEmpty())// 如果文本框没有字符串不做处理
            return;
        textarea_1.append(name + "n");// 把输入人名与回车符添加到人员列表
        textField.selectAll();// 选择文本框所有字符
    }
    protected void do_button_actionPerformed(ActionEvent e) {
        String perstring = textarea_1.getText();// 获取人员列表文本
        String[] personnelArray = perstring.split("n{1,}");// 获取人员数组
        int index = (int) (Math.random() * personnelArray.length);// 生成随机数组索引
        // 定义包含格式参数的中奖信息
        String formatArg = "本次抽取观众人员:nt%1$sn恭喜%1$5s成为本次观众抽奖的大奖得主。"
                + "nn我们将为%1$5s颁发:nt过期的酸奶二十箱。";
        // 为中奖信息添加人员参数
        String info = String.format(formatArg, personnelArray[index]);
        textarea.setText(info);// 在文本域显示中奖信息
    }
    protected void do_button_1_actionPerformed(ActionEvent e) {
        System.exit(0);
    }
}

效果如图所示:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/152489.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号