Dateityp und -Icon

Status
Nicht offen für weitere Antworten.

Ralf Ueberfuhr

Bekanntes Mitglied
Hallo,

Mit JFileChooser kann ich ja das Icon einer Datei oder des Typs der Datei bekommen. Dafür muss allerdings die Datei lokal vorhanden sein. Ansonsten erhalte ich eine FileNotFoundException.

Was aber, wenn ich nur einen Dateinamen einer entfernten Datei habe, zu der ich aber das von Betriebssystem zugeordnete Icon erhalten möchte?

Gibt es eine andere Alternative als eine "leere" Datei mit der Endung zu erstellen und dann den JFileChooser zu benutzen?
 
G

Guest

Gast
Wahrscheinlich nicht. JFileChooser verwendet FileSystemView#getSystemIcon(File f)
bzw. FileSystemView#getShellFolder(File f) und dieses wirft die Exception.
 

Ralf Ueberfuhr

Bekanntes Mitglied
Ja eben, aber wie bekommt denn FileSystemView das Icon, wenn es nicht direkt in der Datei enthalten ist? Dann schaut es unter Windows evtl. in die Registry, oder die JVM nutzt eine Windows-API, die das erledigt.

Ich könnte also auch in der Registry nachschauen, das wird aber betriebssystem spezifisch und ist nicht mehr plattformunabhängig.
 
G

Guest

Gast
Siehe "FindExecutableEx", "ExtractIcon" und "LoadIcon" in der Windoof-API.

Eine andere Lösung wäre vielleicht, dass du einen Icon-Cache für bekannte Typen
verwaltest und diesen irgendwo im Verzeichnis deiner Anwendung speicherst.

- Datei vorhanden -> Icon über FileSystemView holen und auch im Icon-Cache speichern
- Datei nicht vorhanden -> bekannter Typ -> Icon aus Cache holen
- Datei nicht vorhanden -> unbekannter Typ -> Default-Icon verwenden

Wenn du nicht gerade tausende unterschiedlicher Dateitypen bearbeitest, sollte es
ein akzeptabler Kompromiss sein.
 

Ralf Ueberfuhr

Bekanntes Mitglied
Das ist genauso eine Möglichkeit wie die von mir o.g., aber meine Anwendung ist verteilt, und mit einem Cache über die gesamte Anwendung sieht z.B. ein Linux-Benutzer dann Windows-Icons.

Und wenn ich's nur lokal mache, dann lauf ich Gefahr, einem bekannten Dateitypen ein "Unbekannter Dateityp"-Symbol zuzuordnen, zumal die Dateien angezeigt werden, ohne vorher über einen JFileChooser ausgewählt zu werden.
 
G

Guest

Gast
masseur81 hat gesagt.:
Das ist genauso eine Möglichkeit wie die von mir o.g., aber meine Anwendung ist verteilt, und mit einem Cache über die gesamte Anwendung sieht z.B. ein Linux-Benutzer dann Windows-Icons.

Und wenn ich's nur lokal mache, dann lauf ich Gefahr, einem bekannten Dateitypen ein "Unbekannter Dateityp"-Symbol zuzuordnen, zumal die Dateien angezeigt werden, ohne vorher über einen JFileChooser ausgewählt zu werden.
Wie ich schon schrieb. Unter Windows werden die Icons nicht aus der Registry geholt, sondern es wird
anhand des Dateinamens bzw. Erweiterung das dazugehörige Programm ermittelt. "FindExecutableEx"
Aus diesem wird dann mit "ExtractIcon" das Icon geholt. Mit "LoadIcon" werden vordefinierte Icons (file_ico) etc.
gelesen, wenn ich mich recht erinnere. Es ist schon gut paar Jahre her, wo ich was mit C++ gemacht habe.

Du kannst es auch auf die Spitze treiben und P2P mässig im gesammten Verbund nach dem passenden
Icon "fragen". Also, ein Client fragt in die Runde, ob das Icon bekannt ist und holt sich dieses von den
anderen Clients mit gleichem Betriebssystem über's Netzwerk ab. ;)
 

Ralf Ueberfuhr

Bekanntes Mitglied
Anonymous hat gesagt.:
masseur81 hat gesagt.:
Das ist genauso eine Möglichkeit wie die von mir o.g., aber meine Anwendung ist verteilt, und mit einem Cache über die gesamte Anwendung sieht z.B. ein Linux-Benutzer dann Windows-Icons.

Und wenn ich's nur lokal mache, dann lauf ich Gefahr, einem bekannten Dateitypen ein "Unbekannter Dateityp"-Symbol zuzuordnen, zumal die Dateien angezeigt werden, ohne vorher über einen JFileChooser ausgewählt zu werden.
Wie ich schon schrieb. Unter Windows werden die Icons nicht aus der Registry geholt, sondern es wird
anhand des Dateinamens bzw. Erweiterung das dazugehörige Programm ermittelt. "FindExecutableEx"
Aus diesem wird dann mit "ExtractIcon" das Icon geholt. Mit "LoadIcon" werden vordefinierte Icons (file_ico) etc.
gelesen, wenn ich mich recht erinnere. Es ist schon gut paar Jahre her, wo ich was mit C++ gemacht habe.

Du kannst es auch auf die Spitze treiben und P2P mässig im gesammten Verbund nach dem passenden
Icon "fragen". Also, ein Client fragt in die Runde, ob das Icon bekannt ist und holt sich dieses von den
anderen Clients mit gleichem Betriebssystem über's Netzwerk ab. ;)

In der Registry stehen das StandardIcon sowie die verantwortliche Anwendung...
 
R

Roar

Gast
echt ihr habt probleme
Code:
File f = File.createTempFile("", format);
Icon i = FileSystemView.geFileSystemView().getSystemIcon(f);
f.delete();
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
kodela bestimmten Dateityp immer mit jar-Datei öffnen Allgemeine Java-Themen 17
F Was ist der Dateityp meines Parameters für die Main Methode. Allgemeine Java-Themen 6
Schandro Datei öffnen mit... Bestimmten Dateityp mit einen Java-Programm öffnen lassen Allgemeine Java-Themen 5
J Dateityp im Internet Allgemeine Java-Themen 3
M dateityp ändern Allgemeine Java-Themen 2
E Custom Icon in den Systemsymbolen Allgemeine Java-Themen 2
P Selenium . Probleme ein Iron Icon Element anzusprechen Allgemeine Java-Themen 2
M Desktop jar File icon Ändern? Allgemeine Java-Themen 14
M Icon-Speicherort in Jar-Datei fest verankern. Allgemeine Java-Themen 5
Thallius Wie mache ich eine Java App mit Icon startbar die mehr Heap Speicher braucht? Allgemeine Java-Themen 3
I JFrame Icon in Main übergeben Allgemeine Java-Themen 1
P Swing Icon von Exe Datei auslesen Allgemeine Java-Themen 8
T Rock'n Roll Icon bei Mouseover Allgemeine Java-Themen 3
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
njans Windows Verknüpfung von Icon Allgemeine Java-Themen 2
P Icon aus Exe einbinden Allgemeine Java-Themen 12
H Icon einer Datei auslesen Allgemeine Java-Themen 2
D [win] icon aus exe extrahieren Allgemeine Java-Themen 5
B Icon: Hintergrundfarbe des Textes Allgemeine Java-Themen 9
Burny91 JAR-Datei Icon ändern Allgemeine Java-Themen 2
hdi Suche Icon-Sammlung Allgemeine Java-Themen 7
DStrohma Jede node in JTree mit eigenem Icon Allgemeine Java-Themen 7
B JTable nach Icon sortieren Allgemeine Java-Themen 6
M Eigenem Dateiformat Icon zuweisen Allgemeine Java-Themen 6
N JFrame Icon selbst erzeugen Allgemeine Java-Themen 2
G Icon auf Button Allgemeine Java-Themen 5
G Serialisieren eines JButton mit Icon Allgemeine Java-Themen 8
D Icon für eigene Dateiendung Allgemeine Java-Themen 7
MQue Button mit Icon und Beschriftung Allgemeine Java-Themen 7
T Icon -> Bild einladen Allgemeine Java-Themen 18
G Desktop-Icon erstellen? Allgemeine Java-Themen 5
G Programmpfad auslesen und Desktop-Icon erstellen? Allgemeine Java-Themen 3
thE_29 Sticky Titelleiste Icon Allgemeine Java-Themen 11
D ByteArray für Image-Icon laden. Allgemeine Java-Themen 4
G Text und Bild/Icon im Label/Button positionieren/ausrichten Allgemeine Java-Themen 2
T icon jar-Datei Allgemeine Java-Themen 2
D Systray Icon Allgemeine Java-Themen 2
Z Woher bekomme ich Icon's? Allgemeine Java-Themen 2
G Schwierigkeiten mit Systray-Icon und JAR-Datei Allgemeine Java-Themen 7
J Icon für Jar-Archiv Allgemeine Java-Themen 2
J Programm-Icon ändern Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben