利用Java线程Thread实现接口Runnable接口使图片动起来

在窗体中要想使图片动起来,让人感觉整个过程都是连续的过程着实不易,须得下下功夫,本人通过模仿他人的思路,建立自己的思想,分为以下几个步骤完成

1.先导入以下几个包:

package com.zlw;                            //定义包

import  java.awt.*;                          //导入Java.awt包,目的为了创建容器
import  javax.swing.*;                     //导入javax.swing 包,目的为了创建窗口

import  java.net.URL;                     //导入  java.net.URL包,目的调用图片

2、编写主类

public class SwingAndThread extends JFrame{
private JLabel jl=new JLabel();         //实例化标签
private static Thread t;             //声明线程      
private int count=0;
private Container c=getContentPane();   //创建容器
public SwingAndThread(){
setBounds(300,200,300,150);
c.setLayout(null);
URL url=SwingAndThread.class.getResource("/image07.gif");            //查找图片资源
Icon icon=new ImageIcon(url);                       //实例化Icon对象                                                   
jl.setIcon(icon);              //将图标放置在标签中
jl.setHorizontalAlignment(SwingConstants.LEFT);         
jl.setBounds(10,20,200,80);                      //设置标签大小
jl.setOpaque(true);                               //设置控件不透明
t=new Thread(new Runnable(){           //实例化Thread线程,创建内部类
public void run(){
while(count<=200){
jl.setBounds(count,20,200,80);
try{
Thread.sleep(1000/60);    //使线程休眠1000/60毫秒,目的是让肉眼感觉是在连续的过程
}catch(Exception e){
e.printStackTrace();
}
++count;
if(count==200){   //当图标到达最右边时,使其回到标签最左边
count=10;
}
}
}
});
t.start();                  //启动线程
c.add(jl);                  //将标签放置到容器中
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public static void main(String[] args) {            //主方法
new SwingAndThread();           


}

}

3.运行效果如图:


你可能感兴趣的:(thread,线程,标签,url)