用java Swing编写GUI界面,模拟抢红包游戏,在界面输入红包大小和抢红包人姓名(用逗号隔开),输出系统当前时间以及每个人抢的红包大小,要求每个人抢的红包最少不能少于0.01元,精确到小数点后两位
时间: 2024-04-03 15:33:42 浏览: 15
好的,这是一个关于Java Swing的GUI界面编写的问题,我会尽力回答。
首先,你需要创建一个GUI界面,可以使用JFrame作为主窗口。在窗口中添加两个文本框和一个按钮,用于输入红包大小和抢红包人姓名,并且提交红包信息。同时,在窗口中添加一个文本区域,用于显示系统当前时间以及每个人抢的红包大小。
下面是一个简单的示例代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class RedPacketGame extends JFrame implements ActionListener {
private JLabel label1, label2;
private JTextField textField1, textField2;
private JButton button;
private JTextArea textArea;
public RedPacketGame() {
// 设置窗口标题
setTitle("抢红包游戏");
// 设置窗口大小和位置
setSize(400, 300);
setLocationRelativeTo(null);
// 创建标签和文本框
label1 = new JLabel("红包大小:");
label2 = new JLabel("抢红包人姓名:");
textField1 = new JTextField(10);
textField2 = new JTextField(10);
// 创建按钮
button = new JButton("提交");
button.addActionListener(this);
// 创建文本区域
textArea = new JTextArea(10, 30);
textArea.setEditable(false);
// 创建面板,并添加组件
JPanel panel = new JPanel();
panel.add(label1);
panel.add(textField1);
panel.add(label2);
panel.add(textField2);
panel.add(button);
// 添加组件到窗口
add(panel, BorderLayout.NORTH);
add(new JScrollPane(textArea), BorderLayout.CENTER);
// 显示窗口
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// 获取红包大小和抢红包人姓名
String sizeStr = textField1.getText();
String nameStr = textField2.getText();
// 将红包大小和抢红包人姓名转换为数组
String[] sizes = sizeStr.split(",");
String[] names = nameStr.split(",");
// 获取当前系统时间
String timeStr = String.format("[%tT]", System.currentTimeMillis());
// 遍历抢红包人姓名和红包大小
for (int i = 0; i < sizes.length && i < names.length; i++) {
double size = Double.parseDouble(sizes[i]);
if (size < 0.01) {
size = 0.01;
}
String sizeStr2 = String.format("%.2f", size);
String message = timeStr + " " + names[i] + " 抢到了 " + sizeStr2 + " 元的红包\n";
textArea.append(message);
}
// 清空文本框
textField1.setText("");
textField2.setText("");
}
public static void main(String[] args) {
new RedPacketGame();
}
}
```
在这个示例代码中,我们使用了JFrame作为主窗口,并且添加了两个文本框和一个按钮用于输入红包大小和抢红包人姓名,以及提交红包信息。同时,我们也添加了一个文本区域用于显示系统当前时间以及每个人抢到的红包大小。在按钮被点击时,我们获取红包大小和抢红包人姓名,并且遍历抢红包人姓名和红包大小,将结果显示在文本区域中。
需要注意的是,我们在遍历抢红包人姓名和红包大小时,对于每个人抢到的红包大小进行了判断,确保每个人抢到的红包最少不能少于0.01元,精确到小数点后两位。同时,我们使用了String.format()方法来格式化输出结果,确保小数点后只保留两位。