Я хотел создать JFileChooser
с миниатюрным представлением файлов изображений. Поэтому я создал подклассы FileView и в методе, который создает ImageIcon
, немного масштабировал эту миниатюру. показаны изображения.
Однако общий эффект заключается в том, что виджету filechooser
требуется некоторое время, прежде чем открывается каталог и отображаются эскизы .. В createImageIcon () ниже,
mark
public static void main(String[] args) {
JFileChooser chooser=new JFileChooser();
ThumbNailView thumbView=new ThumbNailView();
chooser.setFileView(thumbView);
}
class ThumbNailView extends FileView{
public Icon getIcon(File f){
Icon icon=null;
if(isImageFile(f.getPath())){
icon=createImageIcon(f.getPath(),null);
}
return icon;
}
private ImageIcon createImageIcon(String path,String description) {
if (path != null) {
ImageIcon icon=new ImageIcon(path);
Image img = icon.getImage() ;
Image newimg = img.getScaledInstance( 16, 16, java.awt.Image.SCALE_SMOOTH ) ;
return new ImageIcon(newimg);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
private boolean isImageFile(String filename){
//return true if this is image
}