线程的sleep方法

import javax.swing.*;
import java.awt.*;
import java.util.Random;

/**
 *
 * try{
 *     Thread.sleep(2000);
 * }catch(InterruptedException e){
 *     e.printStackTrace();
 * }
 * 会使线程在2秒内不会进入就绪状态,由于sleep状态会抛出异常,线程一段时间后可能进入运行或就绪状态
 */

public class SleepMethodTest extends JFrame {
    private Thread t;
    private static Color[] color={Color.BLACK,Color.BLUE,Color.cyan,Color.GREEN,Color.ORANGE,Color.ORANGE,
    Color.YELLOW,Color.RED,Color.PINK,Color.LIGHT_GRAY
    };
    private static final Random rand =new Random();//创造随机对象
    //getC方法,用于随机产生color类的对象,并且在产生线程的匿名内部类中使用getGraphics方法中获取Graphics对象
    //使用该对象调用setColor方法为图形设置颜色
    private static Color getC(){//获取随机颜色值的方法
        return color[rand.nextInt(color.length)];
    }

    public SleepMethodTest(){
        t=new Thread(new Runnable() {//创建匿名线程对象
            //。描绘初始坐标
            int x=30;
            int y=50;
            public void run() {
                while (true){
                    try {
                        Thread.sleep(300);//线程休眠0.3秒
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    //获取组件绘图上下文对象
                    Graphics graphics =getGraphics();
                    graphics.setColor(getC());//设置绘图颜色
                    //绘制直线并递增垂直坐标,线段会根据y的变化自动调整
                    graphics.drawLine(x,y,1500,y++);

                    if(y>=180){
                        y=50;
                    }
                }


            }
        });
        t.start();//启动线程

    }
    public static void main(String[] args){
        init(new SleepMethodTest(),100,100);
    }
    //初始化程序界面
    public static void init(JFrame frame,int width,int height){
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(width,height);
        frame.setVisible(true);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值