Extraire les icones systeme de l'OS

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 MSWord
import 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);
        }
    }
}

Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour17/01/2011
VisualisationVu 687 fois
PublicInternaute
CategorieJAVA - Sources - Systeme
Auteur de l'article
axel axel
connecté le 20/09/2011
28 ans - France Sud-Est
41 articles dans la section
Contacter l'auteur
Partager l'article