java利用数组随机抽取幸运观众
作者:优胜美地 发布时间:2023-11-11 11:14:33
标签: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();
}
}
效果图:
来源:https://blog.csdn.net/weixin_43258908/article/details/88553669
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 引言:关于java IO流的操作是非常常见的,基本上每个项目都会用到,每次遇到都是去网上找一找就行了,屡试不爽。上次突然一个同事问了我jav
- 大致分为以下几个方面:一些查询指令整理使用SQL语句进行特殊查询检测表字段是否存在数据库升级数据库表字段赋初始值一、查询指令整理1.链式执行
- 一. SpringBoot中实现Session共享1. 创建web项目我们按照之前的经验,创建一个web程序,并将之改造成Spring Bo
- Java HashSetHashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。HashSet 允许有 null 值。
- MultiFrameImageStreamCompleterMultiFrameImageStreamCompleter 是一个可组合的 I
- 获取和释放 monitor 锁的时机本文我们研究下 synchronized 背后的 monitor 锁。我们都知道,最简单的同步方式就是利
- 这篇文章主要介绍了java多线程加锁以及Condition类的使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- java 计算同比增长工具类为了数据的严谨性,统一装换为BigDecimal,话不多说,看代码。package com.pig4cloud.
- 想在Linux进行JAVA开发吗?环境如何搭建,第一个HelloWorld如何实现,下面马上奉献:1、环境搭建1.1 Java JDK 的安
- 一、 搭建struts2环境在myeclipse下,右击项目->MyEclipse->Project Facets->in
- 概念理解Properties 继承于 Hashtable。表示一个持久的属性集,属性列表以key-value的形式存在,key和value都
- 什么是JMMJMM全称Java Memory Model, 中文翻译Java内存模型,一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问
- 什么是线程池是一种基于池化思想管理线程的工具。池化技术:池化技术简单点来说,就是提前保存大量的资源,以备不时之需。比如我们的对象池,数据库连
- 本文以实例阐述了C++中形参与实参的区别,有助于读者加深对于C++形参与实参的认识。形参出现在函数定义中,在整个函数体内都可以使用, 离开该
- 在阅读这篇文章之前,大家可以先看下《Java多线程atomic包介绍及使用方法》,了解atomic包的相关内容。一、何谓Atomic?Ato
- 背景实际开发中,常常需要将比较复杂的 JSON 字符串转换为对应的 Java 对象。这里记录下解决方案。如下所示,是入侵事件检测得到的 JS
- 本文实例讲述了java实现单词搜索迷宫游戏。分享给大家供大家参考。具体分析如下:我们在杂志上,经常能够看到找单词的小游戏,在一个二维表格中,
- java 读取本地文件实例详解用javax.xml、w3c解析实例代码:package cn.com.xinli.monitor.utils
- 创建类第一步新建一个java类QSV,构造函数传入需要解析的文件名称。public class QSV {private RandomAcc
- 你知道String、StringBuilder、Stringbuffer的区别吗?当你创建字符串的时候,有考虑过该使用哪个吗?别急,这篇文章