我需要把它弄成一个可视化窗口的程序
时间: 2024-02-29 20:52:22 浏览: 158
窗口的可视化
好的,以下是一个使用Java Swing实现的随机抽人程序的例子,它提供了一个简单的可视化界面,可以输入人员名单和抽取人数,然后随机抽取指定数量的人员并显示在界面上:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class RandomPicker extends JFrame implements ActionListener {
private JTextField nameField;
private JTextField countField;
private JTextArea resultArea;
public RandomPicker() {
// 设置窗口属性
setSize(400, 400);
setTitle("随机抽人程序");
// 创建控件
JLabel nameLabel = new JLabel("请输入人员名单,用逗号隔开:");
nameField = new JTextField(20);
JLabel countLabel = new JLabel("请输入要抽取的人数:");
countField = new JTextField(5);
JButton pickButton = new JButton("开始抽取");
resultArea = new JTextArea(10, 20);
resultArea.setEditable(false);
// 添加控件到面板
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 1));
panel.add(nameLabel);
panel.add(nameField);
panel.add(countLabel);
panel.add(countField);
panel.add(pickButton);
// 添加事件监听器
pickButton.addActionListener(this);
// 添加面板和文本框到窗口
add(panel, BorderLayout.NORTH);
add(new JScrollPane(resultArea), BorderLayout.CENTER);
}
public static void main(String[] args) {
RandomPicker picker = new RandomPicker();
picker.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// 获取输入的名单和数量
String[] names = nameField.getText().split(",");
int count = Integer.parseInt(countField.getText());
// 随机抽取人员
Random random = new Random();
ArrayList<String> nameList = new ArrayList<>();
Collections.addAll(nameList, names);
Collections.shuffle(nameList);
ArrayList<String> result = new ArrayList<>();
for (int i = 0; i < count; i++) {
result.add(nameList.get(i));
}
// 显示抽取结果
resultArea.setText("");
for (String name : result) {
resultArea.append(name + "\n");
}
}
}
```
这个程序使用了Java Swing提供的JFrame、JPanel、JLabel、JTextField、JButton和JTextArea等控件,通过设置布局和添加事件监听器来实现交互功能。当用户点击“开始抽取”按钮时,程序会从文本框中读取人员名单和抽取人数,然后随机抽取指定数量的人员并显示在文本框中。
阅读全文