JAVA 随机点名的小程序

本文介绍了如何使用JavaSwing库创建一个简单的GUI应用,通过JFrame实现随机从学生姓名列表中抽取一个并显示在界面上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import java.util.List;
import java.util.Random;

public class NameOfStudent extends JFrame {
    // 学生姓名列表
    private List<String> students = Arrays.asList("张三", "李四", "王五", "赵六");

    private JTextField resultTextField;
    private JLabel nameLabel;

    public NameOfStudent() {
        setTitle("随机抽取学生姓名");
        setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        nameLabel = new JLabel("新的幸运儿已经产生");
        nameLabel.setHorizontalAlignment(SwingConstants.CENTER);

        resultTextField = new JTextField();
        resultTextField.setPreferredSize(new Dimension(50, 30));
        resultTextField.setHorizontalAlignment(SwingConstants.CENTER);

        JButton selectButton = new JButton("随机点名");
        selectButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                nameLabel.setVisible(true);
                String selectedStudent = selectRandomStudent();
                resultTextField.setText(selectedStudent);
            }
        });

        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        panel.add(nameLabel, BorderLayout.NORTH);
        panel.add(resultTextField, BorderLayout.CENTER);
        panel.add(selectButton, BorderLayout.SOUTH);

        add(panel);
    }

    private String selectRandomStudent() {
        Random random = new Random();
        int selectedIndex = random.nextInt(students.size());
        return students.get(selectedIndex);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

                    NameOfStudent frame = new NameOfStudent();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值