Java icono del sistemaextracto
JavaAquí presentamos un programa de muestra que extrae el ícono de un archivo específico en un archivo de imagen en formato png. El archivo especificado puede ser cualquier archivo ejecutable con extensión .exe, dll, xls, doc, etc.
Busqué métodos similares en Internet, pero no pude encontrar nada.
Sin embargo, he descubierto un método que es realmente fácil de obtener, así que te lo presentaré.
Además, en Chat&Messenger, este método esPosibilidad de adjuntar archivos a notas adhesivasSe utiliza en
Confirmación de operación del programa de muestra
ejecutar muestra
*Si el archivo jar está asociado, se puede ejecutar.
- Obtenga la fuente de muestra, compílela y ejecútela.
- Cuando lo inicies, se abrirá la ventana principal, así que simplemente arrastra y suelta el ícono que deseas extraer en la ventana.
- Se enviará un archivo de imagen en formato png a la misma ubicación que el icono original.
Explicación del programa de muestra
El proceso de extracción de iconos en Java se logra mediante el siguiente método.
-
Establezca la apariencia de Windows.
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - Archivos obtenidos arrastrando y soltando. javax.swing.JFileChooser.getIcon() con metodo javax.swing.Icono Convertir en objeto.
- javax.imageio.ImageIO.write() Genere el objeto Icon en un archivo de imagen en formato png utilizando el método.
programa de muestra
importar javax.imageio.ImageIO;
importar javax.swing.ImageIcon;
importar javax.swing.JFileChooser;
importar javax.swing.JFrame;
importar javax.swing.JLabel;
importar javax.swing.JPanel;
importar javax.swing.SwingConstants;
importar javax.swing.UIManager;
La clase pública IconExtractor extiende JFrame
implementa DropTargetListener {
JPanel privado jContentPane = nulo;
JLabel privado jLabel = nulo;
selector privado JFileChooser;
público estático vacío principal (String [] argumentos) {
extractor IconExtractor = nuevo IconExtractor();
extractor.setVisible (verdadero);
}
Extractor de iconos público() {
súper();
intentar {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
selector = nuevo JFileChooser();
} captura (Excepción e) {
e.printStackTrace();
}
inicializar();
}
inicialización de vacío privado() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle(“Extracción de iconos”);
this.setLocationRelativeTo(nulo);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
JPanel privado getJContentPane() {
si (jContentPane == nulo) {
jLabel = nueva JLabel();
jLabel.setText(“Arrastra el icono.”);
jLabel.setBackground(Color.blanco);
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
jLabel.setOpaque(verdadero);
nuevo DropTarget(jLabel,
DnDConstants.ACTION_COPY_OR_MOVE, esto);
jContentPane = nuevo JPanel();
jContentPane.setLayout(nuevo BorderLayout());
jContentPane.add(jLabel, BorderLayout.CENTER);
}
devolver jContentPane;
}
// — implementa DropTargetListener —————————-
caída de vacío público (DropTargetDropEvent dtde) {
dtde.acceptDrop(DnDConstants.ACTION_MOVE);
intentar {
Transferible tran = dtde.getTransferable();
Lista archivoLista = (Lista) tran
.getTransferData(DataFlavor.javaFileListFlavor);
Iterador iterador = fileList.iterator();
mientras (iterator.hasNext()) {
Archivo archivo = (Archivo) iterador.next();
Icono ImageIcon = (ImageIcon) selecter.getIcon(archivo);
Cadena text = archivo.getAbsoluteFile() + “.png”;
//Guardar archivo de imagen
ImageIO.write((Imagen en búfer) icon.getImage(), “png”,
nuevo archivo (ext));
jLabel.setText(“<html>Extracción completada<br>”+texto);
setIconImage(icon.getImage());
}
dtde.dropComplete(verdadero);
} captura (Excepción e) {
e.printStackTrace();
dtde.dropComplete(falso);
}
}
dragEnter vacío público (DropTargetDragEvent e) {
}
dragOver vacío público (DropTargetDragEvent e) {
}
dropActionChanged vacío público (DropTargetDragEvent e) {
}
dragExit público vacío (DropTargetEvent e) {
}
}