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

 更新时间:2019年05月08日 08:35:57   作者:优胜美地  
这篇文章主要为大家详细介绍了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();
  }
}

效果图:

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

相关文章

  • Springboot WebJar打包及使用实现流程解析

    Springboot WebJar打包及使用实现流程解析

    这篇文章主要介绍了Springboot WebJar打包及使用实现流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下的相关资料
    2020-08-08
  • Java多线程-线程的同步与锁的问题

    Java多线程-线程的同步与锁的问题

    线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。本篇文章主要介绍了Java多线程-线程的同步与锁的问题,有兴趣的可以了解一下。
    2016-11-11
  • SpringDataJPA之Specification复杂查询实战

    SpringDataJPA之Specification复杂查询实战

    这篇文章主要介绍了SpringDataJPA之Specification复杂查询实战,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • java数据结构基础:稀疏数组

    java数据结构基础:稀疏数组

    今天带大家了解一下Java稀疏数组的相关知识,文中有非常详细的介绍及代码示例,对正在学习java的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-08-08
  • IDEA 显示Run Dashboard窗口的2种方式(推荐)

    IDEA 显示Run Dashboard窗口的2种方式(推荐)

    这篇文章主要介绍了IDEA 显示Run Dashboard窗口的2种方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Java中的MessageFormat.format用法实例

    Java中的MessageFormat.format用法实例

    这篇文章主要介绍了Java中的MessageFormat.format用法实例,本文先是讲解了MessageFormat的语法,然后给出了多个操作实例,需要的朋友可以参考下
    2015-06-06
  • hibernate框架环境搭建具体步骤(介绍)

    hibernate框架环境搭建具体步骤(介绍)

    下面小编就为大家带来一篇hibernate框架环境搭建具体步骤(介绍)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • SpringBoo项目打war包的多种方式

    SpringBoo项目打war包的多种方式

    在idea中,经常会对web项目进行打jar包或者war包,jar包在Java环境中运行,war包在Tomcat服务器中跑,对于打war包有多种方式,一下介绍3钟方式,需要的朋友可以参考下
    2024-06-06
  • 一文详解各种ElasticSearch查询在Java中的实现

    一文详解各种ElasticSearch查询在Java中的实现

    Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎,下面这篇文章主要给大家介绍了关于各种ElasticSearch查询在Java中实现的相关资料,需要的朋友可以参考下
    2023-11-11
  • IDEA连接postgressql数据库操作

    IDEA连接postgressql数据库操作

    这篇文章主要介绍了IDEA连接postgressql数据库操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08

最新评论