java 通过 Runnable 的接口 实现了 多线程

package com.js;
import java.awt.Container;
import java.net.URL;
import javax.swing.*;
public class Java_4_Thread_Runnable extends JFrame {// 继承了 swing 类
    private JLabel jl = new JLabel();// 声明 JLabel对象
    private static Thread t;// 声明线程对象
    private int count = 0; // 声明计算变量
    private Container container = getContentPane();//声明容器
    public Java_4_Thread_Runnable(){
        setBounds(300,200,250,100);// 绝对定位窗体大小与位置
        container.setLayout(null);// 使窗体不使用任何布局管理器
        URL url = Java_4_Thread_Runnable.class.getResource("1.png");// 获取图片的URL
        Icon icon = new ImageIcon(url);//实例化一个Icon
        jl.setIcon(icon);// 将图标放置在标签中
        // 设置图片在标签的最左方
        jl.setHorizontalAlignment(SwingConstants.LEFT);
        jl.setBounds(10,10,200,50);
        jl.setOpaque(true);// 
        t = new Thread(new Runnable(){// 定义匿名内部类,该类实现 Runnable 接口
            public void run(){// 重写 run() 方法
                while(count < 200){// 设置循环条件
                    jl.setBounds(count, 10, 200, 50);// 将标签的横坐标用变量表示
                    try{
                        Thread.sleep(1000);//使线程休眠1000毫秒
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                    count += 4;// 使横坐标每次增加4
                    if(count == 200){
                        count = 10;// 当图标到达标签的最右边时,使其图标标签最左边
                    }
                }
            }
        });
        t.start();// 启动线程
        container.add(jl);// 将标签添加到容器中
        setVisible(true);//使窗体可见
        // 设置窗体的关闭方式
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);


    }

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        new Java_4_Thread_Runnable();// 实例化 一个 对象

    }

}

这里写图片描述

重点:
使用 new Thread 方式,
创建内部匿名类 new Runnable(){}
重新 内部的 run 方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值