首页 > 编程 > Java > 正文

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

2019-11-26 09:02:09
字体:
来源:转载
供稿:网友

本文实例为大家分享了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();  }}

效果图:

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表