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; } }