Java icona del sistemaestratto
JavaQui presentiamo un programma di esempio che estrae l'icona di un file specificato in un file immagine in formato png. Il file specificato può essere qualsiasi file eseguibile con estensione .exe, dll, xls, doc, ecc.
Ho cercato metodi simili su internet, ma non sono riuscito a trovare nulla.
Io però ho scoperto un metodo davvero semplice da ottenere, per questo te lo presenterò.
Inoltre, in Chat&Messenger, questo metodo èPossibilità di allegare file a note adesiveÈ usato dentro
Conferma del funzionamento del programma di esempio
eseguire il campione
*Se il file jar è associato, può essere eseguito.
- Ottieni il sorgente di esempio, compilalo ed eseguilo.
- Quando lo avvii, si aprirà la finestra principale, quindi trascina e rilascia l'icona che desideri estrarre nella finestra.
- Un file immagine in formato png verrà generato nella stessa posizione dell'icona originale.
Esempio di spiegazione del programma
Il processo di estrazione delle icone in Java si ottiene utilizzando il seguente metodo.
-
Imposta l'aspetto grafico su Windows.
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - File ottenuti mediante trascinamento javax.swing.JFileChooser.getIcon() con metodo javax.swing.Icon Converti in oggetto.
- javax.imageio.ImageIO.write() Genera l'oggetto Icona in un file immagine in formato png utilizzando il metodo.
programma di esempio
importa javax.imageio.ImageIO;
importa javax.swing.ImageIcon;
importa javax.swing.JFileChooser;
importa javax.swing.JFrame;
importa javax.swing.JLabel;
importa javax.swing.JPanel;
import javax.swing.SwingConstants;
importa javax.swing.UIManager;
la classe pubblica IconExtractor estende JFrame
implementa DropTargetListener {
JPanel privato jContentPane = null;
JLabel privata jLabel = null;
selettore JFileChooser privato;
public static void main(String[] args) {
Estrattore IconExtractor = new IconExtractor();
estrattore.setVisible(true);
}
public IconExtractor() {
super();
Tentativo {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
selettore = nuovo JFileChooser();
} catch (Eccezione e) {
e.printStackTrace();
}
inizializzare();
}
private void inizializza() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle(“Estrazione icona”);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
JPanel privato getJContentPane() {
se (jContentPane == null) {
jLabel = nuova JLabel();
jLabel.setText(“Trascina l'icona.”);
jLabel.setSfondo(Color.bianco);
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
jLabel.setOpaque(true);
nuovo DropTarget(jLabel,
DnDConstants.ACTION_COPY_OR_MOVE, questo);
jContentPane = nuovo JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(jLabel, BorderLayout.CENTER);
}
restituire jContentPane;
}
// — implementa DropTargetListener —————————-
public void drop(DropTargetDropEvent dtde) {
dtde.acceptDrop(DnDConstants.ACTION_MOVE);
Tentativo {
Tran trasferibile = dtde.getTransferable();
Lista fileList = (Lista) tran
.getTransferData(DataFlavor.javaFileListFlavor);
Iteratore iterator = fileList.iterator();
mentre (iterator.hasNext()) {
File file = (File) iterator.next();
Icona ImmagineIcon = (ImmagineIcon) chooser.getIcon(file);
String ext = file.getAbsoluteFile() + “.png”;
// Salva il file immagine
ImageIO.write((BufferedImage) icon.getImage(), “png”,
nuovo File(est));
jLabel.setText(“<html>Estrazione completata<br>” + esterno);
setIconImage(icon.getImage());
}
dtde.dropComplete(vero);
} catch (Eccezione e) {
e.printStackTrace();
dtde.dropComplete(falso);
}
}
public void dragEnter(DropTargetDragEvent e) {
}
public void dragOver(DropTargetDragEvent e) {
}
public void dropActionChanged(DropTargetDragEvent e) {
}
public void dragExit(DropTargetEvent e) {
}
}