Java SystemsymbolExtrakt
JavaHier stellen wir ein Beispielprogramm vor, das das Symbol einer bestimmten Datei in eine Bilddatei im PNG-Format extrahiert. Die angegebene Datei kann eine beliebige ausführbare Datei mit der Erweiterung .exe, dll, xls, doc usw. sein.
Ich habe im Internet nach ähnlichen Methoden gesucht, konnte aber nichts finden.
Ich habe jedoch eine Methode entdeckt, die wirklich einfach zu beschaffen ist, deshalb werde ich sie Ihnen vorstellen.
Darüber hinaus gibt es diese Methode in Chat&MessengerMöglichkeit, Dateien an Haftnotizen anzuhängenEs wird verwendet in
Beispiel für die Bestätigung des Programmablaufs
Probe laufen lassen
*Wenn die JAR-Datei verknüpft ist, kann sie ausgeführt werden.
- Holen Sie sich die Beispielquelle, kompilieren Sie sie und führen Sie sie aus.
- Wenn Sie es starten, öffnet sich das Hauptfenster. Ziehen Sie einfach das Symbol, das Sie extrahieren möchten, per Drag & Drop in das Fenster.
- Eine Bilddatei im PNG-Format wird an derselben Stelle ausgegeben wie das Originalsymbol.
Beispielprogrammerklärung
Das Extrahieren von Symbolen in Java erfolgt mit der folgenden Methode.
-
Stellen Sie das Erscheinungsbild auf Windows ein.
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - Per Drag & Drop erhaltene Dateien javax.swing.JFileChooser.getIcon() mit Methode javax.swing.Icon In Objekt konvertieren.
- javax.imageio.ImageIO.write() Geben Sie das Icon-Objekt mithilfe der Methode in eine Bilddatei im PNG-Format aus.
Beispielprogramm
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
Die öffentliche Klasse IconExtractor erweitert JFrame
implementiert DropTargetListener {
privates JPanel jContentPane = null;
privates JLabel jLabel = null;
private JFileChooser-Auswahl;
public static void main(String[] args) {
IconExtractor extractor = new IconExtractor();
extractor.setVisible(true);
}
public IconExtractor() {
super();
versuchen {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
chooser = new JFileChooser();
} Catch (Ausnahme e) {
e.printStackTrace();
}
initialisieren();
}
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle(“Icon-Extraktion”);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
privates JPanel getJContentPane() {
if (jContentPane == null) {
jLabel = neues JLabel();
jLabel.setText(“Ziehen Sie das Symbol.“);
jLabel.setBackground(Color.white);
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
jLabel.setOpaque(true);
neues DropTarget(jLabel,
DnDConstants.ACTION_COPY_OR_MOVE, this);
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(jLabel, BorderLayout.CENTER);
}
return jContentPane;
}
// – implementiert DropTargetListener —————————-
public void drop(DropTargetDropEvent dtde) {
dtde.acceptDrop(DnDConstants.ACTION_MOVE);
versuchen {
Übertragbares tran = dtde.getTransferable();
List fileList = (List) tran
.getTransferData(DataFlavor.javaFileListFlavor);
Iterator iterator = fileList.iterator();
while (iterator.hasNext()) {
Datei file = (Datei) iterator.next();
ImageIcon icon = (ImageIcon) Chooser.getIcon(file);
String ext = file.getAbsoluteFile() + „.png“;
// Bilddatei speichern
ImageIO.write((BufferedImage) icon.getImage(), „png“,
neue Datei(ext));
jLabel.setText(“<html>Extraktion abgeschlossen<br>” + ext);
setIconImage(icon.getImage());
}
dtde.dropComplete(true);
} Catch (Ausnahme 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) {
}
}