繼續牛刀(有圖片預覽的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的網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鄂伦春自治旗| 杭锦旗| 奉贤区| 城固县| 苍山县| 巴彦淖尔市| 九龙城区| 自贡市| 定州市| 重庆市| 成武县| 历史| 新绛县| 桐乡市| 象山县| 靖宇县| 扎赉特旗| 红安县| 沈丘县| 治县。| 凉城县| 称多县| 乌恰县| 和平区| 安康市| 正阳县| 特克斯县| 左贡县| 建宁县| 格尔木市| 益阳市| 工布江达县| 昌邑市| 云南省| 葵青区| 丰镇市| 平乡县| 根河市| 珲春市| 平和县| 南华县|