me.setBounds(100, 100, 450, 300); frame.getContentPane().setLayout(null); textField = new JTextField(); textField.setBounds(62, 79, 148, 26); frame.getContentPane().add(textField); textField.setColumns(10); JButton btnNewButton = new JButton("抽取"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String input = textField.getText(); if (!input.isEmpty()) { String[] audienceNames = input.split("\n"); int randomIndex = (int) (Math.random() * audienceNames.length); String winner = audienceNames[randomIndex]; String message = "恭喜,中奖者是:%s"; String formattedMessage = String.format(message, winner); textArea_1.setText(formattedMessage); } } }); btnNewButton.setBounds(172, 79, 89, 29); frame.getContentPane().add(btnNewButton); JButton btnNewButton_1 = new JButton("退出"); btnNewButton_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { System.exit(0); } }); btnNewButton_1.setBounds(279, 79, 89, 29); frame.getContentPane().add(btnNewButton_1); JLabel lblNewLabel = new JLabel("请输入观众名单:"); lblNewLabel.setBounds(11, 11, 110, 15); frame.getContentPane().add(lblNewLabel); scrollPane = new JScrollPane(); scrollPane.setBounds(11, 39, 326, 172); frame.getContentPane().add(scrollPane); textArea = new JTextArea(); textArea.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyChar() == KeyEvent.VK_ENTER) { String name = textField.getText(); if (!name.isEmpty()) { textArea.append(name + "\n"); textField.selectAll(); } } } }); scrollPane.setViewportView(textArea); JLabel label = new JLabel("中奖信息:"); label.setBounds(11, 217, 110, 15); frame.getContentPane().add(label); textArea_1 = new JTextArea(); textArea_1.setBorder(new TitledBorder(new EmptyBorder(5, 5, 5, 5), "中奖信息", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0))); textArea_1.setBounds(11, 238, 326, 47); frame.getContentPane().add(textArea_1); } } ```markdown 这个Java程序实现了在控制台界面中利用数组随机抽取幸运观众的功能。用户通过文本框输入观众的姓名,每输入一个姓名后按回车键,姓名会被添加到文本域中。程序会监听键盘事件,当检测到回车键被按下时,将输入的姓名添加到文本域,并清空文本框以便输入下一个姓名。 当用户点击"抽取"按钮时,程序会读取文本域中的所有姓名(按照回车符分隔),存储为一个字符串数组。接着,通过`Math.random()`函数生成一个随机索引,这个索引对应着数组中的一位观众,即为幸运观众。然后,将随机抽取的观众姓名插入到预定义的中奖信息模板中,并在另一个文本域中显示出来。 如果用户点击"退出"按钮,程序将退出。整个程序使用了Swing库来构建图形用户界面,包括JFrame、JButton、JTextField、JTextArea等组件,以及ActionListener和KeyAdapter来处理用户的交互事件。 在实际应用中,这个程序可以扩展成更复杂的形式,比如添加错误处理机制,确保用户输入的有效性,或者将数据存储在数据库中,增加更多功能如删除、编辑观众名单等。此外,还可以考虑使用集合框架(如ArrayList)替代数组,以便在运行时动态调整观众名单的大小。 ```
- 粉丝: 4
- 资源: 959
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助