繼續牛刀(有圖片預覽的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 相信 閱讀(1259) 評論(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的網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 临夏县| 灵山县| 常熟市| 陆川县| 阿荣旗| 门头沟区| 屯门区| 阳高县| 临沧市| 确山县| 兰坪| 岳普湖县| 炎陵县| 八宿县| 宿松县| 赤峰市| 永昌县| 鹰潭市| 晴隆县| 金塔县| 安塞县| 堆龙德庆县| 五台县| 雷州市| 中卫市| 兴城市| 耒阳市| 安庆市| 临沂市| 四子王旗| 凉城县| 台湾省| 孝感市| 长岛县| 余江县| 深泽县| 边坝县| 通辽市| 抚州市| 丘北县| 白城市|