Java caller, the source code is included in the article

package cn.OrderNameMachine;

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;

/**
 * 随机点名
 * extends 继承  ,   RollName类也表示窗口类   《==RollName继承JFrame,JFrame是一个窗口类,则RollName也是一个窗口类
 */
public class RollName extends JFrame{
    
    

    //定义一个数组
    static String[] names={
    
    "张三","李四","王五","阿衰","樱花","关羽","刘备","张飞"};
    //生成随机数字    先new一个Random对象
    static Random random=new Random();

    //TODO 1 创建一个显示器展示文字
    static JLabel label=new JLabel();

    public static void main(String[] args) {
    
    
        //先编写第一个版本(不去读txt文档),定义一个字符串的数组,放入名字
        //随机点名   ,需求:数组中随机获取名字  --》》完成需求
//        String name=getName();
//        System.out.println("姓名:"+name);

        //TODO.1.1  展示窗口     Java的GUI程序,先创建窗口
        //创建窗口对象     ctrl+p 查看构造方法的参数
//        JFrame frame=new JFrame("Pash点名器");
        JFrame frame=new RollName();
        //设置窗口大小 ,调用的都是父类的方法
        frame.setSize(600,600);

        //设置布局,null 清楚布局,任意摆放
        frame.setLayout(null);


        label.setBounds(270,150,250,50);
        //给显示器设置一些内容
        label.setText("hello!");
        //显示求存放到窗口
        frame.add(label);
        //搞个按钮
        JButton button=new JButton("点名");
        button.setBounds(240,450,80,40);
        //按钮时可以点击的    给按钮添加一个点击的事件  addMouseListener添加鼠标监听
        button.addMouseListener(new MouseAdapter() {
    
    
            @Override
            public void mouseClicked(MouseEvent e) {
    
    
//                System.out.println("按钮被点击了");
                //调用一个方法
                ((RollName) frame).gogo();
            }
        });
        //按钮放置到窗口
        frame.add(button);
        //显示窗口
        frame.setVisible(true);
    }
    //计数器
    static int num=0;

    /**
     * 点名
     * 需求:
     */
    public void gogo(){
    
    
        //开启新线程
        Thread t=new Thread(new Runnable() {
    
    
            @Override
            public void run() {
    
    
                //死循环
                while (true){
    
    
                    System.out.println("gogo,lat M M");
                    //把index的值变成随机值       生成随机数字,范围0~int(names.length)-1  通过索引来的
                    int index = random.nextInt(names.length);
                    //从数组中获取内容
                    String name=names[index];
                    label.setText(name);
                    //让num累加
                    num++;
                    //判断,说明已经循环了10次
                    if(num==10){
    
    
                        //把num的值恢复成0
                        num=0;
                        break;
                    }
                    try {
    
    
                        //休眠
                        Thread.sleep(200);
                    } catch (InterruptedException e) {
    
    
                        e.printStackTrace();
                    }
                }
            }
        });
        //启动线程
        t.start();
    }

    /**
     * 随机获取名字
     * @return
     */
    public static String getName2() {
    
    
        //把index的值变成随机值       生成随机数字,范围0~int(names.length)-1  通过索引来的
        int index = random.nextInt(names.length);
        //从数组中获取内容
        String name=names[index];
        return name;
    }
}

insert image description here
insert image description here

Guess you like

Origin blog.csdn.net/qq_46906413/article/details/122585693