⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imagepreview.java

📁 《SWING HACKS》源码 作者: Joshua Marinacci,Chris Adamson 著 徐晔 译 出版: 2007年2月
💻 JAVA
字号:
import javax.swing.*;import javax.swing.filechooser.*;import java.awt.event.*;import javax.swing.event.*;import java.beans.*;import java.awt.Image;import java.awt.Dimension;import java.awt.*;import javax.imageio.*;import java.io.*;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) {        // fill the background        g.setColor(Color.gray);        g.fillRect(0,0,getWidth(),getHeight());                if(img != null) {            // calculate the scaling factor            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);                        // draw the image            g.drawImage(img,0,0,w,h,null);                        // draw the image dimensions            String dim = w + " x " + h;            g.setColor(Color.black);            g.drawString(dim,31,196);            g.setColor(Color.white);            g.drawString(dim,30,195);                    } else {                        // print a message            g.setColor(Color.black);            g.drawString("Not an image",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);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -