Runnable接口

Runnable接口可以更好的控制管理多个线程。

可以理解为多条公路(线程)通过一个收费站(Runnable接口),达到车辆(run)有序通过的目的。具体参考《线程的同步(协调)synchronized》一节

以下案例实现图片的移动,思路:通过label的x位置变化,实现图片移动

public class Demo extends JFrame {
    private JLabel label = new JLabel();
    private static Thread t;
    private int count = 0;
    private Container c = getContentPane();

    public Demo() {
        setBounds(300, 200, 250, 100);//窗体位置、大小
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        c.setLayout(null);
        URL url = Demo.class.getResource("1.gif");//图片地址
        Icon icon = new ImageIcon(url);//实例化icon
        label.setIcon(icon);//将图放入标签中
        label.setHorizontalAlignment(SwingConstants.LEFT);//label内部左布局,即图片在label左侧
        label.setBounds(0, 10, 50, 50);
        //label.setBorder(BorderFactory.createLineBorder(Color.RED));//边框颜色
        c.add(label);

        t = new Thread(new Roll());//调用Roll线程
        t.start();//启动

        setVisible(true);
    }

    class Roll implements Runnable {//定义Roll内部类,实现Runnable接口
        public void run() {//执行的内容
            while (count <= 200) {
                label.setBounds(count, 10, 50, 50);//label位置
                try {
                    Thread.sleep(1000);//休眠1s
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                count += 4;//步进距离4
                if (count >= 200) {//如果到右端,重新从左端开始
                    count = 0;
                }
            }
        }
    }

    public static void main(String[] args) {
        new Demo();//实例化窗体
    }
}

 

转载于:https://www.cnblogs.com/xixixing/p/9568410.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值