Java icône du systèmeextrait
JavaNous présentons ici un exemple de programme qui extrait l'icône d'un fichier spécifié dans un fichier image au format png. Le fichier spécifié peut être n'importe quel fichier exécutable avec une extension .exe, dll, xls, doc, etc.
J'ai cherché des méthodes similaires sur Internet, mais je n'ai rien trouvé.
Cependant, j'ai découvert une méthode vraiment simple à obtenir, je vais donc vous la présenter.
De plus, dans Chat&Messenger, cette méthode estPossibilité de joindre des fichiers à des notes autocollantesIl est utilisé dans
Exemple de confirmation du fonctionnement du programme
exécuter un échantillon
*Si le fichier jar est associé, il peut être exécuté.
- Obtenez l’exemple de source, compilez-le et exécutez-le.
- Lorsque vous le démarrez, la fenêtre principale s'ouvrira, il vous suffit donc de glisser et de déposer l'icône que vous souhaitez extraire sur la fenêtre.
- Un fichier image au format png sera généré au même emplacement que l’icône d’origine.
Exemple d'explication du programme
Le processus d'extraction d'icônes en Java est réalisé à l'aide de la méthode suivante.
-
Définissez l'apparence et la convivialité sur Windows.
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - Fichiers obtenus par glisser-déposer javax.swing.JFileChooser.getIcon() avec méthode javax.swing.Icône Convertir en objet.
- javax.imageio.ImageIO.write() Générez l'objet Icon dans un fichier image au format png à l'aide de la méthode.
exemple de programme
importer javax.imageio.ImageIO ;
importer javax.swing.ImageIcon ;
importer javax.swing.JFileChooser ;
importer javax.swing.JFrame ;
importer javax.swing.JLabel ;
importer javax.swing.JPanel ;
importer javax.swing.SwingConstants ;
importer javax.swing.UIManager ;
la classe publique IconExtractor étend JFrame
implémente DropTargetListener {
JPanel privé jContentPane = null ;
JLabel privé jLabel = null;
sélecteur JFileChooser privé ;
public static void main (String[] arguments) {
Extracteur IconExtractor = new IconExtractor();
extracteur.setVisible(true);
}
public IconExtractor() {
super();
essayer {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
sélecteur = nouveau JFileChooser();
} attraper (Exception e) {
e.printStackTrace();
}
initialiser();
}
privé vide initialiser() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("Extraction d'icône");
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
JPanel privé getJContentPane() {
si (jContentPane == null) {
jLabel = nouveau JLabel();
jLabel.setText("Faites glisser l'icône.");
jLabel.setBackground(Couleur.blanc);
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
jLabel.setOpaque(true);
nouveau DropTarget(jLabel,
DnDConstants.ACTION_COPY_OR_MOVE, ceci);
jContentPane = nouveau JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(jLabel, BorderLayout.CENTER);
}
retourner jContentPane ;
}
// — implémente DropTargetListener —————————-
public void drop (DropTargetDropEvent dtde) {
dtde.acceptDrop(DnDConstants.ACTION_MOVE);
essayer {
Transférable tran = dtde.getTransferable();
Liste fileList = (Liste) tran
.getTransferData(DataFlavor.javaFileListFlavor);
Itérateur iterator = fileList.iterator();
while (iterator.hasNext()) {
Fichier fichier = (Fichier) iterator.next();
Icône ImageIcon = (ImageIcon) Chooser.getIcon (fichier);
Chaîne ext = file.getAbsoluteFile() + « .png » ;
// Enregistrer le fichier image
ImageIO.write((BufferedImage) icon.getImage(), « png »,
nouveau fichier (ext));
jLabel.setText("<html>Extraction terminée<br>" + poste);
setIconImage(icon.getImage());
}
dtde.dropComplete(true);
} attraper (Exception e) {
e.printStackTrace();
dtde.dropComplete(false);
}
}
public void dragEnter (DropTargetDragEvent e) {
}
public void dragOver (DropTargetDragEvent e) {
}
public void dropActionChanged (DropTargetDragEvent e) {
}
public void dragExit (DropTargetEvent e) {
}
}