package FileChooserTest; import java.awt.Dimension; import java.awt.Image; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JFileChooser; import javax.swing.JLabel; public class ImagePreviewer extends JLabel { /** * */ private static final long serialVersionUID = 1L; /** * Constructor ImagePreviewer * @param chooser Fereastra de dialog pentru alegrea filurilor * Schimbarea valorii aduce la schmabrea viziunii */ public ImagePreviewer(JFileChooser chooser) { setPreferredSize(new Dimension(100, 100)); setBorder(BorderFactory.createEtchedBorder()); chooser.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent arg0) { // TODO Auto-generated method stub if(arg0.getPropertyName() == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY) { //Userul a ales unnou FIle File f = (File) arg0.getNewValue(); if(f == null) {setIcon(null); return;} //Citirea desenului pentru a ol folosi ca vizunea ImageIcon icon = new ImageIcon(f.getPath()); //Daca pizcotgrama este prea mare se face masabizarea if(icon.getIconWidth() > getWidth()) icon = new ImageIcon(icon.getImage().getScaledInstance(getWidth(), -1, Image.SCALE_DEFAULT)); setIcon(icon); } } }); } }