简单加()java抽奖_Java实现简单抽奖功能界面

本文展示了如何使用Java创建一个简单的抽奖程序,包括添加姓名输入、显示中奖名单和使用Random生成随机数。用户输入姓名后,点击抽奖按钮,程序会从输入的姓名中随机选择一位作为中奖者。
摘要由CSDN通过智能技术生成

本文实例为大家分享了Java实现简单抽奖功能的具体代码,供大家参考,具体内容如下

要求:定义文本框添加姓名,将姓名存储并且在界面中可见,点击抽奖按钮进行抽奖并输出最后的中奖得主。

关于抽奖当然需要用到随机数的生成函数,在Java中Random 的使用合适比较简单的;

有两种不同的Random方法的使用,其中一种是Math中的random。

该方法生成的是0~1之间的浮点数,如果要生成整数类型的数字,可以乘一个整数,强制转换为整数类型。

int n = (int)(Math.random()*x);

还有一个是Random 类,使用时间需要先定义相关对象,之后在用对象调用方法生成随机数。例:

Random random = new Random();

int n = random.nextInt(50);

这里生成的数字是0~50之间的整数,不包含50。

下面是总体代码:

import java.awt.EventQueue;

import java.awt.Font;

import java.awt.List;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.util.ArrayList;

import java.util.Random;

import javax.swing.JDesktopPane;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTextArea;

import javax.swing.JTextField;

import javax.swing.JButton;

public class Lottery extends JFrame {

static JTextField textField;

static JTextField textField_1;

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

Lottery frame = new Lottery();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

public Lottery() {

Font fn = new Font("宋体",Font.BOLD,15);//定义字体,并用构造方法初始化

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//定义窗口可关闭

setBounds(100, 100, 625, 328);//窗口大小和位置

getContentPane().setLayout(null);//绝对布局

JDesktopPane desktopPane = new JDesktopPane();//定义小窗口

//desktopPane.setToolTipText("输入观众姓名按回车");

desktopPane.setBounds(24, 12, 171, 286);

getContentPane().add(desktopPane);//添加界面

JLabel lblNewLabel = new JLabel("  输入观众姓名按回车");//为上面的小窗口定义标签名称

lblNewLabel.setBounds(0, 12, 171, 13);

desktopPane.add(lblNewLabel);

textField = new JTextField();//文本框

textField.setBounds(10, 37, 149, 26);

desktopPane.add(textField);

textField.setColumns(30);

List list = new List();//列表定义,用于存储姓名

desktopPane.setLayer(list, 100);

list.setMultipleSelections(true);

list.setBounds(8, 69, 151, 169);

desktopPane.add(list);

JDesktopPane desktopPane_1 = new JDesktopPane();

desktopPane_1.setBounds(216, 12, 317, 286);

getContentPane().add(desktopPane_1);

JLabel lblNewLabel_1 = new JLabel("抽取观众成员");

lblNewLabel_1.setBounds(12, 12, 220, 19);

desktopPane_1.add(lblNewLabel_1);

JLabel label = new JLabel("本次抽取的观众成员为");

label.setBounds(12, 32, 275, 27);

desktopPane_1.add(label);

JTextArea textArea = new JTextArea(3,20);

textArea.setBounds(12, 82, 281, 192);

desktopPane_1.add(textArea);

textArea.setFont(fn);

JButton btnNewButton = new JButton("抽取");

btnNewButton.setBounds(543, 218, 70, 23);

getContentPane().add(btnNewButton);

int i=0;

ArrayList str = new ArrayList();

textField.addKeyListener(new KeyListener() {//文本框键盘监听

public void keyTyped(KeyEvent e) {}

public void keyReleased(KeyEvent e) {}

public void keyPressed(KeyEvent e) {//当出现回车按键时间,会处理文本框的字符串,将他们进行储存,添加到列表

if(e.getKeyChar()!='\n')

return ;

String name = textField.getText();

if(name.isEmpty())

return ;

list.add(name+"\n");

str.add(name);

textField.setText("");

}

});

btnNewButton.addActionListener(new ActionListener() {//按钮监听,输出随机生成的标号在字符串数组中的所对应下标的名字

public void actionPerformed(ActionEvent e) {

// TODO 自动生成的方法存根

int n = str.size();

int x = (int) (Math.random()*n);

String s0 = str.get(x);

String s1 = "\t\t\t"+s0+"\n恭喜"+s0+"成为本次观众抽奖的大奖得主。"+"\n\n我们将为"+s0+"颁发:\n\t\t过期酸奶66箱。";

textArea.setText(s1);

}

});

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值