<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    春風(fēng)博客

    春天里,百花香...

    導(dǎo)航

    <2007年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    統(tǒng)計(jì)

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(224)

    隨筆檔案(126)

    個人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    如何讓Swing控件如JLabel,JButton等顯示動態(tài)Gif圖片

    通常讓這些控件加載圖片的代碼如下:
    JButton addTebBtn = new JButton(new ImageIcon(TabbedPanel.class
        .getResource("/addTab.gif")));

    如果要顯示動態(tài)Gif圖片這樣做法就不靈了.如果要顯示動態(tài)Gif圖片的話,我們需要從JLabel,JButton等控件繼承一個類,并重載其public void paint(Graphics g)方法,然后用一個線程不斷去刷新它(用Timer也可以,請參考文章" 封裝完畢,能顯示當(dāng)前時(shí)間并改變風(fēng)格的菜單類 ( http://www.tkk7.com/sitinspring/archive/2007/06/08/122753.html )"中Timer 的做法,它有少實(shí)現(xiàn)一個Runnable接口的優(yōu)勢),這樣gif的動態(tài)效果就顯示出來了.

    標(biāo)簽的完整代碼如下,其它控件大家可自行參照實(shí)現(xiàn):

    package com.junglesong.common.component.label;

    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.Image;

    import javax.swing.JLabel;

    public class DynGifLabel extends JLabel implements Runnable {
        
    private static final long serialVersionUID = 45345345355L;

        
    // 用以存儲Gif動態(tài)圖片
        public Image image;

        
    // 用以刷新paint函數(shù)
        Thread refreshThread;

        
    /**
         * 
         * 
    @param image:
         *   Sample:new ImageIcon(DynGifLabel.class
         *            .getResource("/picture.gif")).getImage()
         
    */

        
    public DynGifLabel(Image image) {
            
    this.image = image;
            refreshThread 
    = new Thread(this);
            refreshThread.start();
        }


        
    /**
         * 重載paint函數(shù)
         
    */

        
    public void paint(Graphics g) {
            
    super.paint(g);
            Graphics2D graph 
    = (Graphics2D) g;
            
    if (image != null{
                
    // 全屏描繪圖片
                graph.drawImage(image, 00, getWidth(), getHeight(), 00, image
                        .getWidth(
    null), image.getHeight(null), null);
            }

        }


        
    /**
         * 隔100毫秒刷新一次
         
    */

        
    public void run() {
            
    while (true{
                
    this.repaint();// 這里調(diào)用了Paint
                try {
                    Thread.sleep(
    100);// 休眠100毫秒
                }
     catch (Exception e) {
                    e.printStackTrace();
                }

            }

        }

    }


    使用過程如下:
    DynGifLabel stateLbl = new DynGifLabel(new ImageIcon(ThreadPanel.class
                    .getResource(
    "/startThread.gif")).getImage());

    以上.

    posted on 2007-09-08 09:42 sitinspring 閱讀(8610) 評論(4)  編輯  收藏 所屬分類: Swing

    評論

    # re: 如何讓Swing控件如JLabel,JButton等顯示動態(tài)Gif圖片 2007-09-08 12:22 someone

    用線程每隔一段時(shí)間刷新視圖來更新GIF的幀數(shù)會不出現(xiàn)與GIF自己的幀變化速度不一致的情況?
    http://www.kcmultimedia.com/gifcanvas/
    這個網(wǎng)站的代碼實(shí)現(xiàn)了你說的這個功能  回復(fù)  更多評論   

    # re: 如何讓Swing控件如JLabel,JButton等顯示動態(tài)Gif圖片 2007-09-08 18:23 sitinspring

    謝謝樓上指點(diǎn).  回復(fù)  更多評論   

    # re: 如何讓Swing控件如JLabel,JButton等顯示動態(tài)Gif圖片 2007-09-09 00:48 ruislan

    不客氣,多多交流,我也在這里開張了,以后在下就不用someone這種藏頭露尾的方式來交流了。  回復(fù)  更多評論   

    # re: 如何讓Swing控件如JLabel,JButton等顯示動態(tài)Gif圖片[未登錄] 2009-05-19 11:13 xy

    你太有才了,謝謝了  回復(fù)  更多評論   

    sitinspring(http://www.tkk7.com)原創(chuàng),轉(zhuǎn)載請注明出處.
    主站蜘蛛池模板: 全免费a级毛片免费看不卡| 免费精品久久天干天干| 日韩在线播放全免费| 久久久久亚洲Av片无码v| 拍拍拍无挡视频免费观看1000| 亚洲日韩涩涩成人午夜私人影院| 免费观看四虎精品成人| 亚洲精品国产日韩无码AV永久免费网 | 一区二区三区视频免费| 亚洲精品色婷婷在线影院| 一级做受视频免费是看美女 | 一级视频在线免费观看| 自拍偷自拍亚洲精品情侣| a级毛片免费播放| 亚洲成熟xxxxx电影| 国产成人福利免费视频| 亚洲色中文字幕在线播放| 免费看小12萝裸体视频国产 | 免费大片av手机看片高清| 国产亚洲一区区二区在线| 最新国产乱人伦偷精品免费网站 | 日本一道本高清免费| 人妻巨大乳hd免费看| 亚洲天堂男人天堂| 成人毛片免费在线观看| 免费精品久久久久久中文字幕| 亚洲国产无套无码av电影| 四虎永久在线精品免费观看视频| 精品亚洲福利一区二区| 亚洲日韩精品一区二区三区 | 99久久人妻精品免费一区| 亚洲一卡2卡3卡4卡5卡6卡| 免费很黄很色裸乳在线观看| a级毛片无码免费真人久久| 亚洲大成色www永久网址| 亚洲乱码日产精品a级毛片久久| 精品国产污污免费网站| 亚洲中文字幕久久精品无码A | 国产精品亚洲精品日韩电影| 亚洲午夜无码久久久久| 中文字幕乱码免费视频|