用Java编写一个的模拟彩票抽奖图形界面。用户输人1~20之间的一个数字,然后型序随机产生3个1~20之间不相同的数字,分别代表一等奖、二等奖和三等奖的获奖数字。用户输入数字,然后单击“开奖”按钮,如果所输人的数字是中奖号码,将显示中奖信息,如果不是中奖号码则显示相应的提示信息
时间: 2024-10-01 09:06:58 浏览: 48
在Java中创建一个简单的彩票抽奖图形界面,我们可以使用Swing库来构建窗口和组件,以及java.util.Random来生成随机数。下面是一个简化的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.util.Random;
public class LotteryDraw extends JFrame {
private JTextField inputField;
private JButton drawButton;
private JLabel resultLabel;
public LotteryDraw() {
setTitle("彩票抽奖");
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new GridLayout(3, 2));
panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
// 输入框
inputField = new JTextField();
inputField.setBounds(50, 20, 200, 30);
inputField.addActionListener(e -> validateInput());
panel.add(new JLabel("请输入您的号码 (1-20):"));
panel.add(inputField);
// 开奖按钮
drawButton = new JButton("开奖");
drawButton.addActionListener(this::drawNumbers);
drawButton.setBounds(50, 60, 200, 30);
panel.add(drawButton);
// 结果标签
resultLabel = new JLabel("");
resultLabel.setBounds(50, 100, 300, 30);
panel.add(resultLabel);
add(panel);
setVisible(true);
}
private void validateInput() {
int userNumber = Integer.parseInt(inputField.getText());
if (userNumber < 1 || userNumber > 20) {
JOptionPane.showMessageDialog(null, "输入错误,请确保在1到20之间!", "提示", JOptionPane.WARNING_MESSAGE);
return;
}
}
private void drawNumbers(ActionEvent e) {
Random random = new Random();
int[] lotteryNumbers = {random.nextInt(20) + 1, random.nextInt(20) + 1, random.nextInt(20) + 1};
Arrays.sort(lotteryNumbers);
if (Arrays.asList(lotteryNumbers).contains(Integer.parseInt(inputField.getText()))) {
String prize = (lotteryNumbers[0] == Integer.parseInt(inputField.getText())) ? "一等奖" :
(lotteryNumbers[1] == Integer.parseInt(inputField.getText())) ? "二等奖" : "三等奖";
resultLabel.setText("恭喜您,获得" + prize + "!");
} else {
resultLabel.setText("很遗憾,未中奖。抽奖号码为:" + String.join(", ", lotteryNumbers));
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(LotteryDraw::new);
}
}
```
在这个例子中,用户首先在文本框中输入他们的选择,然后点击“开奖”按钮。程序会随机生成三个1到20之间的数字并排序,与用户的输入进行比较。如果匹配,则显示相应的奖项;如果不匹配,则显示未中奖的结果。
阅读全文