线程与Swing相结合实现图标滚动功能

简介:

实现图标滚动功能:


165803219.jpg

165816901.jpg

165645936.jpg


详细代码及注释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package  com.lixiyu;
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  ThreadTestTwo  extends  JFrame{
/**
      *
      */
     private  static  final  long  serialVersionUID = 6159804249536493188L;
private  JLabel jl= new  JLabel();
private  static  Thread t; //声明线程对象
private  int  count= 0 ;
private  Container container=getContentPane(); //声明容器
public  ThreadTestTwo(){
     setBounds( 300 , 200 , 250 , 100 ); //窗体大小与位置
     container.setLayout( null ); //使窗体不使用任何布局
     URL url=ThreadTestTwo. class .getResource( "image.png" );
     Icon icon= new  ImageIcon(url);
     jl.setIcon(icon); //把icon放置标签中
     jl.setHorizontalAlignment(SwingConstants.LEFT); //设置图片在标签的最左方
     jl.setBounds( 10 , 10 , 200 , 50 );
     jl.setOpaque( true );
         
     t= new  Thread( new  Runnable(){ //定义匿名内部类,该类实现Runnable接口
         @SuppressWarnings ( "static-access" )
         public  void  run(){ //
             while (count<= 200 ){
                 jl.setBounds(count, 10 , 200 , 50 ); //将标签的横坐标用变量表示
                 try {
                     t.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){
     new  ThreadTestTwo(); //实例化一个对象
}
}


本文转自lixiyu 51CTO博客,原文链接:http://blog.51cto.com/lixiyu/1312773,如需转载请自行联系原作者

相关文章
|
1月前
|
数据处理
Swing通过后台线程实现页面更新
Swing通过后台线程实现页面更新
20 2
|
2月前
swing编写client端及多线程server端之server端
swing编写client端及多线程server端之server端
|
2月前
|
XML Linux 数据格式
swing编写client端及多线程server端之client端
swing编写client端及多线程server端之client端
|
4月前
|
Java 开发工具 计算机视觉
java swing 人脸签到系统 ----- 调用 opencv 多线程
java swing 人脸签到系统 ----- 调用 opencv 多线程
51 0
Netty(一)Netty核心功能与线程模型2
Netty(一)Netty核心功能与线程模型
50 0
|
前端开发 网络协议 Java
Netty(一)Netty核心功能与线程模型1
Netty(一)Netty核心功能与线程模型
118 0
|
消息中间件 存储 安全
探索FreeRTOS的功能:线程,消息队列,邮箱,信号量,互斥量,任务通知,延时,虚拟定时器
探索FreeRTOS的功能:线程,消息队列,邮箱,信号量,互斥量,任务通知,延时,虚拟定时器
1184 0
|
安全 API 调度
Swing 的任务线程与 EDT 事件分发队列模型(下)
Swing 的任务线程与 EDT 事件分发队列模型(下)
157 0
Swing 的任务线程与 EDT 事件分发队列模型(下)
|
安全 API 调度
Swing 的任务线程与 EDT 事件分发队列模型(上)
Swing 的任务线程与 EDT 事件分发队列模型(上)
92 0
Swing 的任务线程与 EDT 事件分发队列模型(上)