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

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

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          公告

          不顯示applet

          常用鏈接

          留言簿(16)

          我參與的團隊

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          swingchina 專業搞Swing的網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 曲周县| 洪雅县| 什邡市| 即墨市| 襄城县| 黎川县| 桦甸市| 夹江县| 惠来县| 凌海市| 洮南市| 内丘县| 洪泽县| 江安县| 丰都县| 平利县| 当雄县| 正宁县| 隆子县| 汽车| 乌兰浩特市| 威海市| 防城港市| 丰宁| 翁源县| 文昌市| 山东省| 额敏县| 惠州市| 潮州市| 南京市| 澎湖县| 马鞍山市| 曲周县| 泗洪县| 田阳县| 循化| 冕宁县| 博客| 河北区| 永康市|