源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-05-08 18:53 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java利用数组随机抽取幸运观众如何实现
编写程序,事先将所有观众姓名输入数组,然后获得数组元素的总数量,最后在数组元素中随机抽取元素的下标,根据抽取的下标获得幸运观众的姓名。 思路如下: 定义输入框的按键事件,使用KeyEvent类的getKeyChar()函数判断其是否是回车字符,若不是则不作处理; 使用isEmpty()函数判断文本框中是否有字符串,如果没有字符串则不做处理; 若为合法输入则通过JTextArea类的append()方法把输入人名与回车符添加到人员列表; 使用selectAll()方法选择文本框所有字符; 定义点击“抽取”按钮时执行的函数,通过JTextArea类的getText()方法获取人员列表文本,存入字符串; 创建一个字符串型一维数组,将之前的字符串按回车符分割后存入该数组; 通过Math.random()生成随机数组索引,作为中奖者的数组下标; 定义包含格式参数的中奖信息; 通过String类的format()方法为中奖信息添加人员参数; 使用JTextArea类的setText()方法在文本域显示中奖信息; 定义点击“退出”按钮时执行的函数,使用System.exit(0)方法退出程序。 代码如下:
[u]复制代码[/u] 代码如下:
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;     /**      * Launch the application.      */     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();                 }             }         });     }     /**      * Create the application.      */     public ArrayExample() {         initialize();     }     /**      * Initialize the contents of the frame.      */     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("\u8F93\u5165\u5728\u573A\u89C2\u4F17\u59D3\u540D\u6309\u56DE\u8F66");         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("\u9009\u53D6\u89C2\u4F17\u4EBA\u5458\uFF1A");         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("\u62BD\u53D6");         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("\u9000\u51FA");         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 = "本次抽取观众人员:\n\t%1$s\n恭喜%1$5s成为本次观众抽奖的大奖得主。"                 + "\n\n我们将为%1$5s颁发:\n\t过期的酸奶二十箱。";         // 为中奖信息添加人员参数         String info = String.format(formatArg, personnelArray[index]);         textArea.setText(info);// 在文本域显示中奖信息     }     protected void do_button_1_actionPerformed(ActionEvent e) {         System.exit(0);     } }
效果如图所示: [img]http://files.jb51.net/file_images/article/201402/2014218173318262.png[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部