Datei öffnen Dialog modifizieren

Guayg88

Neues Mitglied
Hi Leute,

ich bin Neuling in der Java Entwicklung und habe einen Standard "Datei öffnen" Dialog erstellt, zu sehen im Anhang, an dem ich gerne etwas verändern möchte. (Aus Eclipse heraus sieht der Dialog aus wie in Anhang "Datei öffnen Eclipse")
Auf der linken Seite sind die Schaltflächen "Zuletzt verwendet", "Desktop", "Eigene Dokumente", "Computer" und "Netzwerk" zu sehen.
Nun meine Frage, kann mir jemand sagen wie ich diese Schaltflächen auf der linken Seite verändern bzw. ersetzen kann? Beispielsweise hätte ich gerne anstatt der Schaltfläche "Netzwerk" eine eigene Schaltfläche mit eigener Bezeichnung mit der ich eine Aktion z.B. ein Popup ausführen kann.

Ich hoffe ihr könnt mir weiterhelfen und bin für jeden Tipp sehr dankbar.

Grüße
Guayg88


Der Code zum Aufrufen des Dialogs ist folgender:

Java:
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;

import javax.swing.JFileChooser;

public class OeffnenDialogClass {

	public static void off(){
	        final JFileChooser chooser = new JFileChooser("Verzeichnis wählen");
	        chooser.setDialogType(JFileChooser.OPEN_DIALOG);
	        chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
	        final File file = new File("/home");

	        chooser.setCurrentDirectory(file);

	        chooser.addPropertyChangeListener(new PropertyChangeListener() {
	            public void propertyChange(PropertyChangeEvent e) {
	                if (e.getPropertyName().equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)
	                        || e.getPropertyName().equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)) {
	                    final File f = (File) e.getNewValue();
	                }
	            }
	        });

	        chooser.setVisible(true);
	        final int result = chooser.showOpenDialog(null);

	        if (result == JFileChooser.APPROVE_OPTION) {
	            File inputVerzFile = chooser.getSelectedFile();
	            String inputVerzStr = inputVerzFile.getPath();
	            System.out.println("Eingabepfad:" + inputVerzStr);
	        }
	        System.out.println("Abbruch");
	        chooser.setVisible(false);
	    }

	    
	    public static void main(String[] args) {
	        off();
	}

}
 

Anhänge

  • Datei öffnen Dialog.png
    Datei öffnen Dialog.png
    31,2 KB · Aufrufe: 41
  • Datei Öffnen Eclipse.png
    Datei Öffnen Eclipse.png
    12,2 KB · Aufrufe: 42
Zuletzt bearbeitet von einem Moderator:

turtle

Top Contributor
Ich möchte dir nicht zu nahe treten, aber als Anfänger ist das nicht so einfach.

Zunächst ist es so, das der Dialog mit Absicht so aussieht, daher Standarddialog. Deine Benutzer werden "überrascht" reagieren, wenn der erwartete Dialog plötzlich anders aussieht.

Weiterhin ist Swing in Prinzip tot und wird nicht weiter entwickelt. Das neue GUI-Framework heisst JavaFX.

Aber, wenn du trotzdem den Dialog anpassen möchtest, schau mal hier.
 

turtle

Top Contributor
@Anti-Banane

Es wundert mich, das du von Sun sprichst, wo doch Sun aufgekauft worden ist.

Somit kann ich keine Sun-Tutorials nennen. Ich kann aber folgende Zeilen von Oracle zitieren (Quelle)

[EDIT]6. Is JavaFX replacing Swing as the new client UI library for Java SE?
Yes. However, Swing will remain part of the Java SE specification for the foreseeable future, and therefore included in the JRE. While we recommend developers to leverage JavaFX APIs as much as possible when building new applications, it is possible to extend a Swing application with JavaFX, allowing for a smoother transition.[/EDIT]
 

Anti-Banane

Gesperrter Benutzer
mit dem sun-tut mein ich das hier : The Java™ Tutorials
der link bezüglich FX leitet allerdings extern hierhin weiter : Redirecting... was wiederum auf Client Technologies: Java Platform, Standard Edition (Java SE) 8 Release 8 umleitet
außerdem : die von dir gelinkte "erklärung" ist lediglich aussicht des FX selbst ... ich bin erlich gesagt zu faul mir die changelogs der VM durchzustöbern und überlass es gerne dir uns die entsprechende zeile zu zitieren in der auf FX hingewiesen wird
mir fällt da nämlich nur spontan ich glaub 7u10 oder wann das war ein wo halt FX automatisch mit installiert wurde was ja irgendwann in die normale VM integriert wurde
davon das man aber von Swing abstand nehmen soll habe ich bisher in den eigentlichen changelogs zur JRE noch nicht gefunden ...


--------
EDIT

Wenn ich mir mal so das "get started" 3 Hello World, JavaFX Style (Release 8) angucke erkenn ich hier schon wieder den GRößTEN Fehler den Sun schon mal bei Swing begangen hat und Oracle ihn bei FX wiederholt : [c]extends Application[/c]

NEIN , NEIN , NEIN und nochmals NEIN

sorry ... aber ich kann es einfach nicht glauben ...
ich verweise hier mal an das schöne posting : "warum man NICHT extends JFrame nutzt"
und jetzt will uns oracle sowas auch noch als "guten stil" verkaufen ... um mal das wort vorschreiben nicht zu gebrauchen ?
das ist so der grund weshalb ich mich schlicht und einfach weigern würde bei diesem schrott mit zu machen ... und wie Tobse schon so schön schrieb : "Und wie soll ich dann mit JavaFX, [...], GUIs für einen Desktop-Rechner entwickeln?"
DIE frage ist bei DER struktur aber mal sowas von berechtigt und sollte man eigentlich oracle stellen : "Warum wiederholt ihr einen so schweren Konzeptfehler des vorherigen Systems das dieses hier eigentlich ablösen soll ?"


da bleib ich lieber bei swing ... das läuft dann wenigstens auch noch problemlos auf den XP-kisten meiner leute wo das system mehr als java6 einfach nich bringt
 
Zuletzt bearbeitet:

Anti-Banane

Gesperrter Benutzer
leider doppel-post da edit nicht mehr möglich



so ... ich hab mich jetzt mal noch n bissl weiter durch das FX-tut gegraben ...
öhm sorry ... das hat für mich jetzt erlich gesagt nicht mehr wirklich viel mit dem "programmieren einer gui" zu tun
sicher, es macht vieles einfacher und es ist nicht mehr so starr komplex aufgebaut wie swing ...

ABER : einen möchte-gern-browser nach-implementieren nur um diesen dann mit xml vollzustopfen durch das FX letzten endes ne gui zusammenklebt ... erinnert dann schon wieder sehr stark an web-design was der aussage von Tobse wieder näher kommt
und es ist sicherlich KEIN fortschritt was GUIs angeht

klar ... soweit ich das tut verstanden habe kann ganz einfach z.b. aus seinem web-frontend ne FX-app machen ...
SORRY ... swing already did it

ich mein, klar, auch wenn das HTML-rendering von swing ziemlich schlecht aussieht und mit sicherheit auch noch nach einem ur-alt-standard läuft ... aber das gibt es schon ... da ist FX für mich keine "neu-erfindung" sondern lediglich "auslagern in xml"

ich weis zwar nicht ob, aber ich wette es gab oder gibt sogar tools die aus ner xml auch swing-guis bauen können ... denn mehr macht FX letzten endes auch nicht

wo die basis allerdings ist ... ob beim alten schwerfällig awt mit hard-nodes oder ob dann doch swing oder swing-like n draw in nem frame das ganze erledigt ... ich will mir gar nicht erst die mühe machen das rauszubekommen´


um es kurz zu fassen : sicher wird FX dem einen oder anderen der vllt grade erst aus der web-entwicklung kommt gui-design erleichtern ... oder "alten hasen" neue möglichkeiten eröffnen ... aber so großkotzig wie es oracle mal wieder ankündigt nach dem motto "es wird der neue standard" ... sorry dudes ... das isses nich ... es ist in meinen augen höchstens ne schnike erweiterung zu swing ... ersetzt dieses aber nicht (zu mal wie gesagt ich gar nicht wissen will was da unter der haube abgeht)

zusätzlicher nachteil zu swing den ich hier sehe : da FX als "lib/framework" konzipiert ist > zusätzlicher overhead der so bei swing nicht auftauchen würde
hier wurde also mal wieder am falschen ende gespart (wobei heutige system da keinen all zu großen performance-unterschied machen sollten)
 

Guayg88

Neues Mitglied
@Turlte, danke für die Antwort und den Link!

Ja das kann ich verstehen. Ich möchte nicht unbedingt das gesamte Layout und den gesamten Dialog neu erstellen, sondern lediglich einen der besagten Buttons durch einen eigenen ersetzen. Gibt es da keine Möglichkeit den Dialog zu bearbeiten ohne ihn komplett neu entwerfen und erstellen zu müssen?
 

Tobse

Top Contributor
@Turlte, danke für die Antwort und den Link!

Ja das kann ich verstehen. Ich möchte nicht unbedingt das gesamte Layout und den gesamten Dialog neu erstellen, sondern lediglich einen der besagten Buttons durch einen eigenen ersetzen. Gibt es da keine Möglichkeit den Dialog zu bearbeiten ohne ihn komplett neu entwerfen und erstellen zu müssen?

Die Standardimplementierung sieht das nicht vor. Du hast eine Möglichkeit: Besorg dir den Quellcode von JFileChooser (entweder von Oracle oder vom OpenJDK-Repository, wie es eben beliebt) und baue diese Mäglichkeit zur Erweiterung selbst ein. Das hat aber einen ganz großen Nachteil: Du greiffst damit nichtmehr auf die Implementierung von Oracle zu (sondern benutzt theoretisch deine Eigene), weshalb dein JFileChooser dann nicht von den Updates von Oracle profitiert.
Wenn du die nötige Erfahrung hast - bau den Dialog selbst - an sonsten lass es.
 

dzim

Top Contributor
Sag mal @Anti-Banane: Hast du schon mal für mobile Platformen entwickelt? Ist dir der Begriff "Deklarative Oberflächen" schon mal über den Weg gelaufen?
Ja, das Web mach den deklarativen Weg (HTML beschreibt die Oberfläche, JS die Logik/das Verhalten (und CSS ist das Theming - in dem Fall zwar ein Overkill, aber egal)).
Aber das auch Desktop-Oberflächen deklariert werden um ihnen dann mittels Code (z.B. Java, C++ o.ä.) Leben einzuhauchen, ist schon lange nichts neues mehr:
- Qt hat QML (Desktop (z.B. KDE), Jolla, Tizen, Ubuntu Touch)
- GTK hat Glade
- Windows setzt mit Modern UI auf Webtechniken (wie leider auch Gnome3)
- XAML (Windows .NET)
- XIB (verwurschteltes Apple-XML für Mac)
- Android hat XML-Layouts (und noch sehr viel mehr XML-basiertes Zeug)
- SWT hat XWT (wobei das IMHO keine Sau interessiert)
- Java hat seit JavaFX eben FXML (Java selbst springt wie immer reichlich spät auf den Zug, aber ich finde, dass sich das Ergebniss blicken lassen kann).

Das JavaFX den Web-Script Blödsinn hinter sich lässt ist übrigens eine Nachricht, die schon über 3 Jahre alt ist. Ich verstehe es nicht, das immer noch so viele vollmundig behaupten, das wäre Web-basiert...

Und auch verstehe ich nicht, das so viele eine Anti-JavaFX-und-Swing-ist-ja-soooo-toll-Haltung haben, aber anscheinend (wie du) noch nie JavaFX mal ausprobiert haben. Das ist schon etwas borniert. Sorry, das denke ich wirklich!

BTW: Auf Sun-Tuts beharren und aber einen Oracle-Link angeben ist auch etwas... komisch...

@Turtle: Danke für den Link! In solchen Diskussionen hat mir genau dieser immer gefehlt! (Auch wenn ich nicht sehe, woher die changelog-Durchforsterei kommen soll. Aber egal, vielleicht ist es nur die recht frei interpretierte Interpunktion oder Gross-Kleinschreibung in den anderen Posts, die mich verwirrt...)
 
Zuletzt bearbeitet:

X5-599

Top Contributor
Es gäbe noch die Möglichkeit der Refection. Ist aber erstens eher unschön und zweitens funktioniert das dann nur solange das Windows Look And Feel verwendet wird...

Man muss sich auch auf gewisse Gegebenheiten verlassen, die sich unter Umständen mal ändern könnten (von Oracle aus). d.h. Es wird ein neues Java Update rausgebracht und plötzlich startet die Anwendung nicht mehr.
 

turtle

Top Contributor
@dzim
Nur fürs Protokoll: Ich habe nicht mit der changelog-Durchforsterei angefangen und halte das in diesem Fall für ausgemachten Blödsinn.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Datei öffnen Dialog AWT, Swing, JavaFX & SWT 9
K Datei öffnen Dialog AWT, Swing, JavaFX & SWT 5
P Datei öffnen Dialog: AWT, Swing, JavaFX & SWT 6
P Programm durch Dateiaufruf starten und Datei öffnen AWT, Swing, JavaFX & SWT 2
M Datei in jar öffnen AWT, Swing, JavaFX & SWT 11
N Applet JButton soll html Datei aus einem Ordner öffnen AWT, Swing, JavaFX & SWT 2
T SWT:Datei speichern / öffnen AWT, Swing, JavaFX & SWT 6
J Fehler beim Gif Datei öffnen AWT, Swing, JavaFX & SWT 2
N Swing TreePath Datei öffnen AWT, Swing, JavaFX & SWT 7
W jar Datei öffnen AWT, Swing, JavaFX & SWT 4
S Auswahlfenster: Datei beim Doppelklick öffnen AWT, Swing, JavaFX & SWT 8
A HTML-Datei öffnen AWT, Swing, JavaFX & SWT 3
G avi-Datei mit Desktop.getDesktop().open(File) öffnen AWT, Swing, JavaFX & SWT 4
F Bilder zu ausführbarer Jar-Datei hinzufügen AWT, Swing, JavaFX & SWT 5
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
princess_sara1997 .jar Datei führt den Code nicht richtig aus AWT, Swing, JavaFX & SWT 19
Yonnig Lokale HTML-Datei in Java GUI rendern AWT, Swing, JavaFX & SWT 4
N JavaFX Javafx intelij Projekt zu ausführbaren jar Datei Machen AWT, Swing, JavaFX & SWT 1
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
T FXML Datei in Java Code einbinden: javafx.fxml.LoadException AWT, Swing, JavaFX & SWT 2
BabySuna Swing Komponenten auslagern auf separate Datei AWT, Swing, JavaFX & SWT 8
J Java Datei durch CMD mit Parameter ausführen AWT, Swing, JavaFX & SWT 1
B JavaFX JavaFX Anwendung deployen (entw als runnableJAR oder exe-Datei) AWT, Swing, JavaFX & SWT 15
M Eine Datei auf den Apache Server hochladen - über das Menü im JavaProgramm AWT, Swing, JavaFX & SWT 7
VPChief Gibt es eine möglichkeit Dateien aus der jar datei zu kopieren? AWT, Swing, JavaFX & SWT 46
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
MasterCaution Swing .jar Datei ausführen AWT, Swing, JavaFX & SWT 12
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
G Verknüpfung einer pdf Datei AWT, Swing, JavaFX & SWT 2
N Ausführbare Datei aus JavaFX Projekt erstellen AWT, Swing, JavaFX & SWT 22
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
L Csv-Datei einlesen AWT, Swing, JavaFX & SWT 34
J *.jar öffnet PDF-Datei nicht AWT, Swing, JavaFX & SWT 35
M JavaFX Altes Fenster (FXML Datei) löschen AWT, Swing, JavaFX & SWT 16
F Java FX Von der Fxml Datei zum Objekt AWT, Swing, JavaFX & SWT 8
A JavaFX Anwendung in Jar Datei AWT, Swing, JavaFX & SWT 8
F FXML Datei aus dem SceneBuilder in Eclipse aufrufen AWT, Swing, JavaFX & SWT 1
J Swing JavaProgramm für Verschlüssen für eine Datei AWT, Swing, JavaFX & SWT 19
T .jar-Datei lässt sich unflexibler ausführen als über die IDE AWT, Swing, JavaFX & SWT 11
Kanda Sorata Inhalt einer .txt Datei einlesen und in ein Label einfügen (JavaFX) AWT, Swing, JavaFX & SWT 2
H Musik wird nach dem erstellen der .jar Datei nicht mehr abgespielt AWT, Swing, JavaFX & SWT 1
H JavaFX aus der .fxml Datei einen Konstruktor bedienen AWT, Swing, JavaFX & SWT 3
P JavaFX - XCF Datei von Gimp kann nicht angezeigt werden AWT, Swing, JavaFX & SWT 3
M Wie binde ich eine JavaFX ProgressBar an eine Datei Übertragung? AWT, Swing, JavaFX & SWT 2
7 JavaFX Verwendung einer ResizableCanvas-Klasse in fxml-Datei AWT, Swing, JavaFX & SWT 3
C JavaFX Auf Nodes einer FXML-Datei in start Methode zugreifen AWT, Swing, JavaFX & SWT 5
F Pfad von eingelesener Datei AWT, Swing, JavaFX & SWT 10
Crazynet xls Datei in JTable AWT, Swing, JavaFX & SWT 3
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
G .txt-Datei einlesen /formatieren in JTextfield ?? AWT, Swing, JavaFX & SWT 8
B ST Datei einlesen AWT, Swing, JavaFX & SWT 1
D JavaFX Jar Datei Signieren mit Java 8u45 AWT, Swing, JavaFX & SWT 2
M Datei mit Komponenten einbinden AWT, Swing, JavaFX & SWT 7
M Swing PDF Datei nach drucken nicht löschbar AWT, Swing, JavaFX & SWT 6
A Databinding in FXML-Datei AWT, Swing, JavaFX & SWT 1
H 2D-Grafik .EPS Datei in .PNG konvertieren AWT, Swing, JavaFX & SWT 1
F Swing Java Swing Array in Datei und wieder raus AWT, Swing, JavaFX & SWT 7
L 2D-Grafik PNG Datei in JLabel Array Problem AWT, Swing, JavaFX & SWT 4
B JAVAFX und CSS Datei in Eclipse AWT, Swing, JavaFX & SWT 4
3 Swing JList-Inhalt als verschlüsselte Datei schreiben und lesen AWT, Swing, JavaFX & SWT 1
S Aus XML Datei FXML generieren AWT, Swing, JavaFX & SWT 4
V JavaFX - fxml-Datei laden (neben CSS) AWT, Swing, JavaFX & SWT 2
S Swing Verzeichnis/Datei-Pfad in JTextField schreiben AWT, Swing, JavaFX & SWT 2
A JFileChooser Datei speichern AWT, Swing, JavaFX & SWT 4
T Aus JAVA.Jar GUI eine Flash-Datei machen AWT, Swing, JavaFX & SWT 3
A Datei weiterverwenden mit JFileChooser AWT, Swing, JavaFX & SWT 6
A AWT TTF-Datei zu Font-Objekt finden? AWT, Swing, JavaFX & SWT 5
Iron Monkey Nach Drag & Drop die Datei auf Komponent darstellen AWT, Swing, JavaFX & SWT 2
J JFileChooser - Datei speichern AWT, Swing, JavaFX & SWT 7
W Funktion aus einer Java Datei in eine andere einbauen AWT, Swing, JavaFX & SWT 25
P Neue Datei erstellen in JPanel AWT, Swing, JavaFX & SWT 5
N Speicherpfad für Datei auswählen AWT, Swing, JavaFX & SWT 2
A JTextArea - Zeichenbegrenzung nach .txt Datei import AWT, Swing, JavaFX & SWT 6
E Swing jTextPane Text datei anzeigen AWT, Swing, JavaFX & SWT 7
M Datei Speichern unter Dialog - SWT AWT, Swing, JavaFX & SWT 3
X Applet Java Applet Datei Ausführung AWT, Swing, JavaFX & SWT 9
J Bild aus Datei in BufferedImage laden AWT, Swing, JavaFX & SWT 4
M Swing XML Datei in JTable darstellen + verändern AWT, Swing, JavaFX & SWT 3
D Swing JTable in Datei speichern und laden AWT, Swing, JavaFX & SWT 3
kodela Swing JFileChooser und die Datei-Extension AWT, Swing, JavaFX & SWT 3
T Info Datei AWT, Swing, JavaFX & SWT 3
J ImageIcon: ZipException bei ungültiger PNG-Datei AWT, Swing, JavaFX & SWT 2
W TrayIcon mit jdic (Problem bei .jar Datei) AWT, Swing, JavaFX & SWT 3
D Nodes eines statischen JTrees sollen auf Anker (Textmarken) in einer HTML-Datei zeigen AWT, Swing, JavaFX & SWT 8
R Swing XML Datei in JTree, Problem mit Daten einlesen AWT, Swing, JavaFX & SWT 34
M AWT Datei auf server speichern und beschreiben AWT, Swing, JavaFX & SWT 7
P JMenu-Erweiterung in externer Datei AWT, Swing, JavaFX & SWT 5
M Text in txt-Datei in letzte Zeile schreiben? AWT, Swing, JavaFX & SWT 14
X Swing Inhalt einer JEditorPane in Datei abspeichern AWT, Swing, JavaFX & SWT 5
E Datei in TextArea anzeigen AWT, Swing, JavaFX & SWT 12
data89 Nimbus Look and Feel als gepackte JAR-Datei AWT, Swing, JavaFX & SWT 3
N Swing Hintergrund Bild in JAR Datei AWT, Swing, JavaFX & SWT 2
I Swing .Jar Datei - funktioniert - nun als Applet AWT, Swing, JavaFX & SWT 13
M Text-Datei in einem JFrame öffen? AWT, Swing, JavaFX & SWT 2
Fadi Images in JAR Datei laden? AWT, Swing, JavaFX & SWT 5
K Hyperlink als Datei identifizieren AWT, Swing, JavaFX & SWT 2
S Jar-Datei funktioniert nicht richtig AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben