国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java利用數組隨機抽取幸運觀眾如何實現

2019-11-26 15:41:29
字體:
來源:轉載
供稿:網友

編寫程序,事先將所有觀眾姓名輸入數組,然后獲得數組元素的總數量,最后在數組元素中隨機抽取元素的下標,根據抽取的下標獲得幸運觀眾的姓名。

思路如下:

定義輸入框的按鍵事件,使用KeyEvent類的getKeyChar()函數判斷其是否是回車字符,若不是則不作處理;
使用isEmpty()函數判斷文本框中是否有字符串,如果沒有字符串則不做處理;
若為合法輸入則通過JTextArea類的append()方法把輸入人名與回車符添加到人員列表;
使用selectAll()方法選擇文本框所有字符;
定義點擊“抽取”按鈕時執行的函數,通過JTextArea類的getText()方法獲取人員列表文本,存入字符串;
創建一個字符串型一維數組,將之前的字符串按回車符分割后存入該數組;
通過Math.random()生成隨機數組索引,作為中獎者的數組下標;
定義包含格式參數的中獎信息;
通過String類的format()方法為中獎信息添加人員參數;
使用JTextArea類的setText()方法在文本域顯示中獎信息;
定義點擊“退出”按鈕時執行的函數,使用System.exit(0)方法退出程序。
代碼如下:

復制代碼 代碼如下:

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);
    }
}

效果如圖所示:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中西区| 金沙县| 抚远县| 嘉荫县| 安丘市| 十堰市| 沈丘县| 菏泽市| 吉木萨尔县| 平安县| 台东市| 基隆市| 志丹县| 中宁县| 金塔县| 六盘水市| 沾益县| 青神县| 固始县| 杭锦后旗| 寿宁县| 大姚县| 河北区| 咸宁市| 额敏县| 边坝县| 扎鲁特旗| 平乡县| 马山县| 普定县| 腾冲县| 威信县| 监利县| 台前县| 沁阳市| 板桥市| 陈巴尔虎旗| 凤凰县| 长武县| 资阳市| 都昌县|