欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

带图像预览功能的文件选择器,图像预览文件选择器,带图像预览功能的文件选择

来源: javaer 分享于  点击 46262 次 点评:164

带图像预览功能的文件选择器,图像预览文件选择器,带图像预览功能的文件选择


带图像预览功能的文件选择器

[Java]代码

    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);    }}
相关栏目:

用户点评