134,689
社区成员




题目:七星彩是中国体育彩票的一种玩法,由中国国家体育总局体育彩票管理中心统一发行,2004年5月18日开始在全国联网统一销售,单注最高奖金500万元。到现在还在运行。
基本玩法是:从0-9的数字中随机选一个,一共选7次,组成一个7位数。如果完全跟中奖号码一样,则中了一等奖。
实现:实现一个七星彩号码生成器
- 创建一个类:SevenStar
- 使用SevenStar继承JFrame构建窗体
- 窗体主要有三部分组成:输入部分、显示部分、生成号码按钮
- 通过Random类的实例生成伪随机数流。
- 使用nextInt方法获取一个小于参数值的随机数
package com.cs.test;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.util.Random;
class SevenStar extends JFrame {
private static final long serialVersionUID = -5495698077878405699L;
private JPanel contentPanel;
private JTextField textField;
private JTextArea textArea;
public SevenStar() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPanel = new JPanel();
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPanel.setLayout(new BorderLayout(0, 0));
setContentPane(contentPanel);
setTitle("七星彩号码生成器");
setVisible(true);
JPanel panel = new JPanel();
contentPanel.add(panel, BorderLayout.NORTH);
panel.setLayout(new GridLayout(1, 2, 5, 5));
JLabel label = new JLabel("请输入号码组数:");
label.setFont(new Font("JetBrains Mono", Font.PLAIN, 18));
label.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label);
textField = new JTextField();
textField.setFont(new Font("JetBrains Mono", Font.PLAIN, 18));
panel.add(textField);
textField.setColumns(10);
JPanel buttonPanel = new JPanel();
contentPanel.add(buttonPanel, BorderLayout.SOUTH);
JButton button = new JButton("生成号码");
button.addActionListener(new AbstractAction() {
public void actionPerformed(ActionEvent e) {
int times = Integer.parseInt(textField.getText());
StringBuilder sb = new StringBuilder();//利用StringBuilder来保存号码
for (int i = 0; i < times; i++) {
int number = new Random().nextInt((int)Math.pow(10,7));//生成随机数
String luckNumber = ""+number;
while (luckNumber.length()<7){
luckNumber = "0"+luckNumber;//如果随机数的长度不够7用0补齐
}
sb.append(luckNumber+"\n");
}
textArea.setText(sb.toString());//显示生成的中奖号码
}
});
button.setFont(new Font("微软雅黑", Font.PLAIN, 18));
buttonPanel.add(button);
JScrollPane scrollPane = new JScrollPane();
contentPanel.add(scrollPane, BorderLayout.CENTER);
textArea = new JTextArea();
textArea.setFont(new Font("微软雅黑", Font.PLAIN, 18));
scrollPane.setViewportView(textArea);
}
}
public class Basic51 {
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (Throwable e) {
throw new RuntimeException(e);
}
EventQueue.invokeLater(SevenStar::new);
}
}