java利用數(shù)組隨機抽取幸運觀眾
本文實例為大家分享了java利用數(shù)組隨機抽取幸運觀眾的具體代碼,供大家參考,具體內(nèi)容如下
思想:
首先將所有觀眾姓名生成數(shù)組,然后獲取數(shù)組元素的總數(shù)量,再在數(shù)組元素中隨機抽取元素的下標,根據(jù)元素的下標得到幸運觀眾的名字。
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,}");// 獲取人員數(shù)組 int index = (int) (Math.random() * personnelArray.length);// 生成隨機數(shù)組索引 // 定義包含格式參數(shù)的中獎信息 String formatArg = "本次抽取觀眾人員:\n\t%1$s\n恭喜%1$s成為本次觀眾抽獎的大獎得主。" + "\n\n我們將為%1$s頒發(fā):\n\t過期的酸奶二十箱。"; // 為中獎信息添加人員參數(shù) String info = String.format(formatArg, personnelArray[index]); resultArea.setText(info);// 在文本域顯示中間信息 } protected void do_button_1_actionPerformed(ActionEvent e) { dispose(); } }
效果圖:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Springboot WebJar打包及使用實現(xiàn)流程解析
這篇文章主要介紹了Springboot WebJar打包及使用實現(xiàn)流程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下的相關資料2020-08-08SpringDataJPA之Specification復雜查詢實戰(zhàn)
這篇文章主要介紹了SpringDataJPA之Specification復雜查詢實戰(zhàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11java數(shù)據(jù)結(jié)構(gòu)基礎:稀疏數(shù)組
今天帶大家了解一下Java稀疏數(shù)組的相關知識,文中有非常詳細的介紹及代碼示例,對正在學習java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-08-08IDEA 顯示Run Dashboard窗口的2種方式(推薦)
這篇文章主要介紹了IDEA 顯示Run Dashboard窗口的2種方式,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08Java中的MessageFormat.format用法實例
這篇文章主要介紹了Java中的MessageFormat.format用法實例,本文先是講解了MessageFormat的語法,然后給出了多個操作實例,需要的朋友可以參考下2015-06-06一文詳解各種ElasticSearch查詢在Java中的實現(xiàn)
Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是當前流行的企業(yè)級搜索引擎,下面這篇文章主要給大家介紹了關于各種ElasticSearch查詢在Java中實現(xiàn)的相關資料,需要的朋友可以參考下2023-11-11IDEA連接postgressql數(shù)據(jù)庫操作
這篇文章主要介紹了IDEA連接postgressql數(shù)據(jù)庫操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08