线程都是通过扩展Thread类来创建的,如果程序员需要继承其他类(非Thread类)并使该程序可以使用线程,就需要使用Runnable接口。例如,一个扩展JFrame类的GUI程序不可能再继承Thread类,因为Java语言中不支持多继承,这时该类就需要实现Runnable接口使其具有使用线程的功能。

实现Runnable接口的语法:

public class Thread extends Object implements Runnable

用匿名内部类实现:

import java.awt.*;
import javax.swing.*;
import java.awt.Event;

public class t3 extends JFrame{
private JLabel label = new JLabel();
private int count = 0;

public t3() {
setTitle("实现Runnable接口");
setBounds(10,10,300,300);

ImageIcon image = new ImageIcon("E:\\下载\\图标.jpg");
image.setImage(image.getImage().getScaledInstance(100, 100, 0));

label.setIcon(image);
label.setOpaque(true);//设置标签不透明

Thread th = new Thread(new Runnable() {//定义匿名内部类实现Runnable接口

@Override
public void run() {
// TODO Auto-generated method stub
while(count <= 300) {
label.setBounds(count, 10,300,300);//为了实现图标的滚动效果

try {
Thread.sleep(100);
}catch(Exception e) {
e.printStackTrace();
}

count += 10;
}

}

});

th.start();//线程启动

add(label);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


}

public static void main(String[] args) {
// TODO Auto-generated method stub

t3 B = new t3();

}

}

运行效果:可以实现图标在窗体中滚动的效果