当前位置: 首页 > 编程笔记 >

java利用数组随机抽取幸运观众

龙玺
2023-03-14
本文向大家介绍java利用数组随机抽取幸运观众,包括了java利用数组随机抽取幸运观众的使用技巧和注意事项,需要的朋友参考一下

本文实例为大家分享了java利用数组随机抽取幸运观众的具体代码,供大家参考,具体内容如下

思想:

首先将所有观众姓名生成数组,然后获取数组元素的总数量,再在数组元素中随机抽取元素的下标,根据元素的下标得到幸运观众的名字。

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.border.TitledBorder;
import javax.swing.JButton;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.UIManager;
import java.awt.Color;

public class ArrayExample extends JFrame {

  private JPanel contentPane;
  private JTextField nameField;
  private JTextArea personnelArea;
  private JTextArea resultArea;

  /**@auther 葆宁
   * Launch the application.
   */
  public static void main(String[] args) {
    try {
      UIManager
          .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
    } catch (Throwable e) {
      e.printStackTrace();
    }
    EventQueue.invokeLater(new Runnable() {
      public void run() {
        try {
          ArrayExample frame = new ArrayExample();
          frame.setVisible(true);
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    });
  }

  /**
   * Create the frame.
   */
  public ArrayExample() {
    setTitle("\u5229\u7528\u6570\u7EC4\u968F\u673A\u62BD\u53D6\u5E78\u8FD0\u89C2\u4F17");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 498, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    JPanel panel = new JPanel();
    panel
        .setBorder(new TitledBorder(
            null,
            "\u8F93\u5165\u5728\u573A\u89C2\u4F17\u59D3\u540D\u6309\u56DE\u8F66",
            TitledBorder.LEADING, TitledBorder.TOP, null,
            new Color(59, 59, 59)));
    panel.setBounds(10, 10, 174, 242);
    contentPane.add(panel);
    panel.setLayout(new BorderLayout(0, 5));

    nameField = new JTextField();
    nameField.addKeyListener(new KeyAdapter() {
      @Override
      public void keyPressed(KeyEvent e) {
        do_textField_keyPressed(e);
      }
    });
    panel.add(nameField, BorderLayout.NORTH);
    nameField.setColumns(10);

    JScrollPane scrollPane = new JScrollPane();
    panel.add(scrollPane);

    personnelArea = new JTextArea();
    personnelArea.setEditable(false);
    scrollPane.setViewportView(personnelArea);

    JPanel panel_1 = new JPanel();
    panel_1.setBorder(new TitledBorder(null,
        "\u9009\u53D6\u89C2\u4F17\u4EBA\u5458\uFF1A",
        TitledBorder.LEADING, TitledBorder.TOP, null, new Color(59, 59,
        59)));
    panel_1.setBounds(183, 10, 219, 242);
    contentPane.add(panel_1);
    panel_1.setLayout(new BorderLayout(0, 0));

    JScrollPane scrollPane_1 = new JScrollPane();
    panel_1.add(scrollPane_1);

    resultArea = new JTextArea();
    resultArea.setEditable(false);
    resultArea.setLineWrap(true);
    scrollPane_1.setViewportView(resultArea);

    JButton button = new JButton("\u62BD\u53D6");
    button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        do_button_actionPerformed(e);
      }
    });
    button.setBounds(407, 164, 63, 25);
    contentPane.add(button);

    JButton button_1 = new JButton("\u9000\u51FA");
    button_1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        do_button_1_actionPerformed(e);
      }
    });
    button_1.setBounds(407, 215, 63, 25);
    contentPane.add(button_1);
  }

  protected void do_textField_keyPressed(KeyEvent e) {
    if (e.getKeyChar() != '\n')// 不是回车字符不做处理
      return;
    String name = nameField.getText();
    if (name.isEmpty())// 如果文本框没有字符串不做处理
      return;
    personnelArea.append(name + "\n");// 把输入人名与回车符添加到人员列表
    nameField.selectAll();// 选择文本框所有字符
  }

  protected void do_button_actionPerformed(ActionEvent e) {
    String perstring = personnelArea.getText();// 获取人员列表文本
    String[] personnelArray = perstring.split("\n{1,}");// 获取人员数组
    int index = (int) (Math.random() * personnelArray.length);// 生成随机数组索引
    // 定义包含格式参数的中奖信息
    String formatArg = "本次抽取观众人员:\n\t%1$s\n恭喜%1$s成为本次观众抽奖的大奖得主。"
        + "\n\n我们将为%1$s颁发:\n\t过期的酸奶二十箱。";
    // 为中奖信息添加人员参数
    String info = String.format(formatArg, personnelArray[index]);
    resultArea.setText(info);// 在文本域显示中间信息
  }

  protected void do_button_1_actionPerformed(ActionEvent e) {
    dispose();
  }
}

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 我想在Java中获得1到50之间的随机值。 在的帮助下,我该怎么办;? 如何绑定返回的值? 问题答案: 第一种解决方案是使用类: 另一种解决方案是使用: 要么

  • 本文向大家介绍java list随机抽取元素的案例,包括了java list随机抽取元素的案例的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧~ 扩展: 截取list list.subList(0, 2); 补充知识:java list随机打乱顺序 通过 Collections.shuffle(list)来打乱顺序 以上这篇java list随机抽取元素的案例就是小

  • 问题内容: 我有一个生成事实的简单应用。我想合并一个生成随机事实而不是递减的函数。 我的数组看起来像这样。 问题答案: 使用随机类。该类有一个方法,(doc)和引号: 返回一个伪随机数,它从此随机数生成器的序列中提取,在0(含)和指定值(不含)之间均匀分布的int值。nextInt的一般约定是伪随机生成并返回指定范围内的一个int值。所有n个可能的int值均以(近似)相等的概率产生。 因此,您需要

  • 本文向大家介绍java实现随机抽取奖品工具类,包括了java实现随机抽取奖品工具类的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java实现随机抽取奖品工具类的具体代码,供大家参考,具体内容如下 随机抽取奖品 整体思路: 1.奖品集合 + 概率比例集合 2.将奖品按集合中的顺序概率计算成所占比例区间,放入比例集合。并产生一个随机数加入其中,进行排序。 3.排序后随机数落在那个区间就

  • 本文向大家介绍java随机抽取指定范围不重复的数字,包括了java随机抽取指定范围不重复的数字的使用技巧和注意事项,需要的朋友参考一下 本文给大家介绍如何在JAVA中实现随机无重复数字的功能。如果您是初学者的话,有必要看一看这篇文章,因为这个功能一般会在面试中遇到。包括我本人在招聘人员的时候也喜欢拿这个问题去问别人,主要看一看考虑问题的模式和基础知识如何。 希望这篇文章能给初次接触的朋友一些帮助,

  • 本文向大家介绍JS实现随机抽取三人,包括了JS实现随机抽取三人的使用技巧和注意事项,需要的朋友参考一下 因为实验室每周需要三人来做报告,所以用JS来做一个随机抽取的页面。 首先,先说一下需求。研二同学共5人,一人是单独的一组,研一同学共9人,同时九人分为三组。所以共八组,每周报告的三人从八组中抽取,这三人不能有两人或者两人以上在同一组。 程序思路1 1.将研一的三组建成三个小的数组,从这三个数组里