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

本文实例为大家分享了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);

}

});

}

}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现一个滚动界面抽奖,你可以使用Java的Swing库。下面是一个简单的示例代码,演示了如何创建一个滚动界面抽奖的程序: ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; public class LotteryApp extends JFrame implements ActionListener { private JTextArea textArea; private JButton startButton; private Timer timer; private Random random; public LotteryApp() { setTitle("滚动界面抽奖"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); textArea = new JTextArea(10, 20); textArea.setEditable(false); JScrollPane scrollPane = new JScrollPane(textArea); startButton = new JButton("开始抽奖"); startButton.addActionListener(this); Container container = getContentPane(); container.setLayout(new BorderLayout()); container.add(scrollPane, BorderLayout.CENTER); container.add(startButton, BorderLayout.SOUTH); pack(); setLocationRelativeTo(null); random = new Random(); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == startButton) { if (timer != null && timer.isRunning()) { timer.stop(); startButton.setText("开始抽奖"); } else { timer = new Timer(100, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int number = random.nextInt(100); // 这里可以根据需要修改范围 textArea.setText(String.valueOf(number)); } }); timer.start(); startButton.setText("停止抽奖"); } } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new LotteryApp().setVisible(true); } }); } } ``` 这个程序使用了JFrame作为主窗口容器,其中包括一个JTextArea用来显示抽奖结果,一个JScrollPane用来给JTextArea提供滚动功能,以及一个JButton用来控制抽奖的开始和停止。抽奖结果是通过定时器每隔一段时间生成一个随机数来实现的。 你可以根据需要修改抽奖的范围和滚动界面的布局。运行这段代码,点击"开始抽奖"按钮即可开始滚动界面抽奖

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值