Thread多线程(二):Runnable

时间:2024-08-22 11:36:56
    如果要让其他类使用线程就要用到runnable,其他thread就是实现了runnbale接口,其中run()方法就是对runnable接口中的run()方法的具体实现。有两个构造函数分别是:public thread(runnable)、public thread(runnable r,string name)
    使用runnable接口实现了启动新的线程步骤如下:
       1、创建runnable对象。2、使用参数为runnable对象的构造方法创建thread实例。3、调用start()方法启动线程。
    下面结合swing来练习一下:
 package hengzhe.cn.o1;

 import java.awt.Container;
import java.net.URL; import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants; public class SwingAndThread extends JFrame
{
private JLabel jl = new JLabel();
private static Thread t;//线程对象
private int count = 0;
private Container container = getContentPane();//容器 public SwingAndThread()
{
setBounds(300, 200, 250, 100);//窗体大小与位置
container.setLayout(null); Icon icon = new ImageIcon("E:\\ymnl.png");
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
{
t.sleep(1000);//休眠1000毫秒
} catch (Exception ex)
{
ex.printStackTrace();
}
count += 4;//图片的位置增加四
if (count == 200)
{
count = 10;//当图片到最右边时,让图片再到左边
}
} } });
t.start();//启动
container.add(jl);//添加容器中
setVisible(true);//可见
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
} public static void main(String[] args)
{
new SwingAndThread();//调用主体 } }

Thread多线程(二):RunnableThread多线程(二):Runnable