java 使用swing实现随机点名,包含一个开始点名按钮和停止按钮和一个显示名字的标签。
时间: 2024-04-10 18:28:36 浏览: 87
下面是一个使用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.Random;
public class RandomNamePickerGUI extends JFrame implements ActionListener {
private JLabel nameLabel;
private JButton startButton;
private JButton stopButton;
private Timer timer;
private ArrayList<String> names;
private Random rand;
public RandomNamePickerGUI() {
this.setTitle("随机点名");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
nameLabel = new JLabel("点击开始按钮开始点名");
nameLabel.setFont(new Font("Arial", Font.BOLD, 20));
this.add(nameLabel);
startButton = new JButton("开始");
startButton.addActionListener(this);
this.add(startButton);
stopButton = new JButton("停止");
stopButton.addActionListener(this);
this.add(stopButton);
names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
names.add("Dave");
names.add("Eve");
rand = new Random();
timer = new Timer(100, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int randomIndex = rand.nextInt(names.size());
String randomName = names.get(randomIndex);
nameLabel.setText(randomName);
}
});
this.pack();
this.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new RandomNamePickerGUI();
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == startButton) {
timer.start();
} else if (e.getSource() == stopButton) {
timer.stop();
}
}
}
```
在上面的代码中,我们创建了一个继承自JFrame的RandomNamePickerGUI类。在构造函数中,我们创建了一个包含开始按钮、停止按钮和显示名字的标签的GUI界面。当点击开始按钮时,使用Timer定时器每100毫秒随机选择一个名字并更新显示标签的内容。当点击停止按钮时,停止定时器。names列表中的名字可以根据需要进行修改。
你可以将上述代码保存为Java文件并编译运行,即可看到随机点名的GUI界面。
阅读全文