Sur tous les système d'exploitation, la fonction
FileSystemView.
getSystemIcon() extrait l'icône 16x16 associée à une extension de fichier. Pour les images de taille 32x32, l'icône est obtenue avec
shellFolder.getIcon().
Utilisés dans une class héritée de DefaultTreeCellRenderer, les icônes sont affichées comme dans un explorateur de fichier.
Class FileIco: exemple pour extraire l'icône de MSWordimport java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.filechooser.FileSystemView;
import sun.awt.shell.ShellFolder;
/**
* Extraire les icones systeme
* @author Axel - ® fobec.com 2010
*/
public class FileIco {
public static void main(String args[]) {
try {
//créer un fichier temporaire
File file = File.createTempFile("icon", ".doc");
FileSystemView view = FileSystemView.getFileSystemView();
//Extraire l'icone 16 x 16
Icon icon = view.getSystemIcon(file);
System.out.println("Taille de l'icone: " + icon.getIconHeight()
+ " x " + icon.getIconWidth());
ShellFolder shellFolder = ShellFolder.getShellFolder(file);
//Extraire l'icone 32 x 32
Icon icon32 = new ImageIcon(shellFolder.getIcon(true));
System.out.println("Taille de l'icone: " + icon32.getIconHeight()
+ " x " + icon32.getIconWidth());
//supprimer le fichier temporaire
file.delete();
} catch (IOException ex) {
Logger.getLogger(FileIco.class.getName()).log(Level.SEVERE, null, ex);
}
}
}