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

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

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

    Pudgy's World
    posts - 13,  comments - 16,  trackbacks - 0
    Recently, I am working on graphic project. This project I faced is a big challenge to me. Here is a sloution to show the progress bar when loading the image from the net.
    PS:
    If you install the JAI, it will break the progress interrupt.
    See this in Sun's Bug Database
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4842452


      1 import java.awt.BorderLayout;
      2 import java.awt.event.ActionEvent;
      3 import java.awt.event.ActionListener;
      4 import java.awt.image.BufferedImage;
      5 import java.io.IOException;
      6 import java.net.MalformedURLException;
      7 import java.net.URL;
      8 import java.util.Iterator;
      9 
     10 import javax.imageio.ImageIO;
     11 import javax.imageio.ImageReader;
     12 import javax.imageio.event.IIOReadProgressListener;
     13 import javax.imageio.stream.ImageInputStream;
     14 import javax.swing.*;
     15 
     16 public class IIOProgressTest
     17 {
     18     public static void main(String[] args)
     19     {
     20         try {
     21             UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
     22         } catch (Exception e) {
     23             e.printStackTrace();
     24         }
     25 
     26         final JLabel imageLabel = new JLabel();
     27         JScrollPane scrollPane = new JScrollPane(imageLabel);
     28         final JButton startBtn = new JButton("Load Image");
     29         final JProgressBar progressBar = new JProgressBar();
     30         progressBar.setVisible(false);
     31         JPanel p = new JPanel(new BorderLayout(55));
     32         p.add(startBtn, BorderLayout.WEST);
     33         p.add(progressBar, BorderLayout.CENTER);
     34         
     35         final IIOReadProgressListener progressListener = new IIOReadProgressListener() {
     36             public void imageStarted(ImageReader source, int imageIndex)
     37             {
     38                 SwingUtilities.invokeLater(new Runnable()
     39                 {
     40                     public void run()
     41                     {
     42                         startBtn.setEnabled(false);
     43                         progressBar.setValue(0);
     44                         progressBar.setVisible(true);
     45                         invalidate();
     46 
     47                     }
     48                 });
     49             }
     50             public void imageProgress(ImageReader source, final float percentageDone)
     51             {
     52                 SwingUtilities.invokeLater(new Runnable()
     53                 {
     54                     public void run()
     55                     {
     56                         System.out.println("percentageDone" + percentageDone);
     57                         progressBar.setValue((int) (percentageDone));
     58                     }
     59                 });
     60             }
     61             public void imageComplete(ImageReader source) 
     62             {
     63                 SwingUtilities.invokeLater(new Runnable()
     64                 {
     65                     public void run()
     66                     {
     67                         startBtn.setEnabled(true);
     68                         progressBar.setValue(100);
     69                         progressBar.setVisible(false);
     70                     }
     71                 });
     72             }
     73 
     74             public void sequenceStarted(ImageReader source, int minIndex) {}
     75             public void sequenceComplete(ImageReader source) {}
     76             public void thumbnailStarted(ImageReader source, int imageIndex, int thumbnailIndex) {}
     77             public void thumbnailProgress(ImageReader source, float percentageDone) {}
     78             public void thumbnailComplete(ImageReader source) {}
     79             public void readAborted(ImageReader source) {}
     80         };
     81 
     82         startBtn.addActionListener(new ActionListener()
     83         {
     84             public void actionPerformed(ActionEvent e)
     85             {
     86                 final String urlStr = JOptionPane.showInputDialog(
     87                         SwingUtilities.getWindowAncestor(startBtn), "Input image URL");
     88                 if (urlStr == null) {
     89                     return;
     90                 }
     91 
     92                 new Thread() {
     93                     public void run()
     94                     {
     95                         try {
     96                             URL url = new URL(urlStr);
     97                             ImageInputStream iis = ImageIO.createImageInputStream(url.openStream());
     98                             Iterator iter = ImageIO.getImageReaders(iis);
     99                             if (iter.hasNext()) {
    100                                 ImageReader reader = (ImageReader) iter.next();
    101                                 reader.setInput(iis);
    102                                 reader.addIIOReadProgressListener(progressListener);
    103                                 BufferedImage image = reader.read(reader.getMinIndex());
    104                                 final ImageIcon icon = new ImageIcon(image);
    105 
    106                                 SwingUtilities.invokeLater(new Runnable()
    107                                 {
    108                                     public void run()
    109                                     {
    110                                         imageLabel.setIcon(icon);
    111                                         imageLabel.revalidate();
    112                                     }
    113                                 });
    114                             }
    115                         } catch (MalformedURLException e) {
    116                             e.printStackTrace();
    117                         } catch (IOException e) {
    118                             e.printStackTrace();
    119                         }
    120                     }
    121                 }.start();
    122             }
    123         });
    124 
    125         JFrame f = new JFrame("IIOProgressTest");
    126         f.getContentPane().setLayout(new BorderLayout(55));
    127         f.getContentPane().add(scrollPane, BorderLayout.CENTER);
    128         f.getContentPane().add(p, BorderLayout.SOUTH);
    129         f.setSize(800600);
    130         f.setLocationRelativeTo(null);
    131         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    132         f.setVisible(true);
    133     }
    134 }
    135 

    posted on 2005-08-16 12:19 Pudgy's World 閱讀(908) 評論(0)  編輯  收藏 所屬分類: ImageIO

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    <2005年8月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    常用鏈接

    留言簿(1)

    隨筆分類(13)

    隨筆檔案(13)

    文章分類(4)

    文章檔案(5)

    相冊

    Developer

    Favorite blogs

    搜索

    •  

    積分與排名

    • 積分 - 22421
    • 排名 - 1627

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产a级视频| 亚洲美女大bbbbbbbbb| 成人A毛片免费观看网站| 亚洲国产高清人在线| 两性刺激生活片免费视频| 亚洲精品国产av成拍色拍| 亚洲伊人久久大香线蕉综合图片| 日韩人妻无码精品久久免费一| 亚洲欧美日韩一区二区三区在线| 亚洲国产人成精品| 日韩在线播放全免费| 免费一区二区三区在线视频| 911精品国产亚洲日本美国韩国| 国产一区二区三区免费在线观看 | 免费无遮挡无码视频在线观看| 亚洲av无码片在线播放| 永久久久免费浮力影院| 久久免费精彩视频| 看Aⅴ免费毛片手机播放| 亚洲色图视频在线观看| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 在线观看无码的免费网站| 久久毛片免费看一区二区三区| 在线观看亚洲AV日韩A∨| 亚洲国产精品一区二区久久hs| 在线观看免费大黄网站| 95免费观看体验区视频| 国产精品成人啪精品视频免费| 亚洲国产视频久久| 久久精品亚洲一区二区三区浴池| 伊在人亚洲香蕉精品区麻豆| 日本三级2019在线观看免费| 人妻免费一区二区三区最新| 美女被爆羞羞网站在免费观看| 亚洲精品亚洲人成在线播放| 亚洲av永久无码精品网站 | 免费在线观看的黄色网址| 青娱乐免费在线视频| 99国产精品视频免费观看| 三级黄色在线免费观看| 日韩免费高清一级毛片|