繼續牛刀(有圖片預覽的JFileChooser)

          效果圖:



          package ImageFileChoosers;

          import java.awt.Color;
          import java.awt.Dimension;
          import java.awt.Graphics;
          import java.awt.Image;
          import java.beans.PropertyChangeEvent;
          import java.beans.PropertyChangeListener;
          import java.io.File;
          import java.io.IOException;

          import javax.imageio.ImageIO;
          import javax.swing.JFileChooser;
          import javax.swing.JPanel;

          public class ImagePreview extends JPanel implements PropertyChangeListener {
               
          private JFileChooser jfc;
               
          private Image img;

               
          public ImagePreview(JFileChooser jfc) {
                    
          this.jfc = jfc;
                    Dimension sz 
          = new Dimension(200,200);
                    setPreferredSize(sz);
               }


               
          public void propertyChange(PropertyChangeEvent evt) {
                   
          try {
                         System.out.println(
          "updating");
                         File file 
          = jfc.getSelectedFile();
                         updateImage(file);
                        }
           catch (IOException ex) {
                             System.out.println(ex.getMessage());
                             ex.printStackTrace();
                    }

               }

               
          public void updateImage(File file) throws IOException {
                
          if(file == null{
                     
          return;
                }

                img 
          = ImageIO.read(file);
                    repaint();
               }

               
          public void paintComponent(Graphics g) {
                     g.setColor(Color.gray);
                     g.fillRect(
          0,0,getWidth(),getHeight());
                
          if(img != null{
                     
          int w = img.getWidth(null);
                     
          int h = img.getHeight(null);
                     
          int side = Math.max(w,h);
                     
          double scale = 200.0/(double)side;
                     w 
          = (int)(scale * (double)w);
                     h 
          = (int)(scale * (double)h);
                     
          //將這個Image畫出來
                     g.drawImage(img,0,0,w,h,null);
             
                     String dim 
          = w + " x " + h;
                     g.setColor(Color.black);
                     g.drawString(dim,
          31,196);
                     g.setColor(Color.white);
                     g.drawString(dim,
          30,195);
                     g.setColor(Color.black);
                     
          //這句隨便你加不加顯示在預覽窗口的
                     g.drawString("Swing如此漂亮",30,100);
                }

           }

                
          public static void main(String[] args) {
                     JFileChooser jfc 
          = new JFileChooser();
                     ImagePreview preview 
          = new ImagePreview(jfc);
                     jfc.addPropertyChangeListener(preview);
                     jfc.setAccessory(preview);
                     jfc.showOpenDialog(
          null);
                }


          }


          posted on 2008-05-20 13:16 相信 閱讀(1254) 評論(3)  編輯  收藏 所屬分類: Swing文章

          評論

          # re: 繼續牛刀(有圖片預覽的JFileChooser) 2008-05-21 19:34 lzw

          不好,我選擇一個圖片后,程序就結束了  回復  更多評論   

          # re: 繼續牛刀(有圖片預覽的JFileChooser) 2008-05-21 19:36 相信

          ....................大哥
          我這是JFileChooser
          不是一個完整的軟件

          JFileChooser選擇文件以后 其他事情就是你的事了
          跟我沒任何關系.. 請看清楚題目 謝謝  回復  更多評論   

          # re: 繼續牛刀(有圖片預覽的JFileChooser) 2008-05-21 19:41 lzw

          老大做的不錯,是我錯了  回復  更多評論   

          <2008年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          公告

          不顯示applet

          常用鏈接

          留言簿(16)

          我參與的團隊

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          swingchina 專業搞Swing的網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 长葛市| 封丘县| 丹江口市| 定兴县| 玉林市| 镇安县| 延长县| 南汇区| 达州市| 孟村| 常州市| 肥西县| 安乡县| 科尔| 三都| 栾川县| 呈贡县| 余庆县| 昌宁县| 卓尼县| 镇巴县| 驻马店市| 曲麻莱县| 昭苏县| 佛坪县| 云南省| 砀山县| 客服| 徐闻县| 桂林市| 吉林市| 巴马| 邵阳县| 林西县| 青神县| 无极县| 九江县| 信阳市| 科尔| 文成县| 安福县|