Last Path in File Chooser

iPhone007

Mitglied
Hallo zusammen

Ich habe einen File Chooser in meine Applikation eingebaut und als Default Pfad "C:" gesetzt. Nun will ich jetzt das er eigentlich merkt wenn ich bereits einmal in z.B. "C:\Daten" letztes mal ein File ausgewählt habe das er bei nächstem start von der Applikatin und beim Auswahl von Files direkt in "C:\Daten" Startet und nicht jedes mal in "C:". Zurzeit habe ich einfach fest in Code gesagt er soll in "C:" starten, weil ich nicht wusste wie ich es anders umsetzten könnte. Ich könnte mir vorstellen wie ich das lösen konnte aber ich dachte das es sicherlich eine spez. Funktion dafür gibt, die ich einfach nicht finden kann. Kann mir hier jemand ein Tipp geben?

Hier ist mein FileChooser:
Code:
	private void jMenuItemOpenProfileActionPerformed(java.awt.event.ActionEvent evt) {                                                     
		System.out.println(String.format("[jMenuItemOpenProfileActionPerformed] event occured ... evt=%s", evt.toString()));
		//Create a file chooser with default open directory
		final JFileChooser fc = new JFileChooser("C:\\");
		fc.setFileFilter(new HTMLFileFilter());
		//In response to a button click:
		int returnVal = fc.showOpenDialog(jMenuItemOpenProfile);

		if( returnVal == JFileChooser.APPROVE_OPTION ) {
			File returnOpenProfilePath = fc.getSelectedFile();
			//initComponents();
			jTreeProfile = initProfileDescriptionGUI(
					returnOpenProfilePath.getAbsolutePath(),
					jTreeProfile,jTextPaneItemInfCim,jTextPaneItemInfDesc,jScrollPaneProfile);
		}
	}

Gruss
iPhone Freek :)
 

eRaaaa

Top Contributor
Ohne es jetzt getestet zu haben oder wirklich zu wissen, aber normal merkt sich der FC dein letztes dir, wieso er das bei dir nicht macht, liegt wahrscheinlich daran, dass du jedes mal wenn du die Methode aufrufst, einen neuen FileChooser erstellst.
Erstelle ihn einmal und rufe dann in deiner Methode einfach jedes mal nur fc.showOpenDialog auf. Jedes mal einen neuen Filter zu erstellen braucht man ja auch nicht unbedingt...
 

hansmueller

Bekanntes Mitglied
Oder du läßt das Programm sich den Pfad der letzten geöffneten Datei merken und verwendest diesen Pfad dann im Konstuktor von FileChooser.

MfG
hansmueller
 

iPhone007

Mitglied
Ohne es jetzt getestet zu haben oder wirklich zu wissen, aber normal merkt sich der FC dein letztes dir, wieso er das bei dir nicht macht, liegt wahrscheinlich daran, dass du jedes mal wenn du die Methode aufrufst, einen neuen FileChooser erstellst.
Erstelle ihn einmal und rufe dann in deiner Methode einfach jedes mal nur fc.showOpenDialog auf. Jedes mal einen neuen Filter zu erstellen braucht man ja auch nicht unbedingt...

Hallo
Danke für die schnelle Antwort.
Verstehe immer noch nicht wie du es meinst, es wird ja immer noch dasselbe Code aufgerufen, auch wenn ich es in eine externe Methode rein packe? Bin noch ein Anfänger, kann sein das es ganz logisch kling, für mich aber immer noch nicht. :(

@hansmueller
Das dachte ich auch, dies ist mein Plan B, aber ich dachte das es einfachen und sauberer geht deswegen will ich es zuerst irgendwie anders, einfacher versuchen. Die Applikation wird weiter entwickelt, deswegen versuche ich sauber zu programmieren. :) Die Lösungsmöglichkeit ist sicherlich nicht falsch, aber ich dachte das es sicher einfacher geht.

Gruss von mit und meinem iPhone :)
 

Michael...

Top Contributor
Zum einen solltest Du - wie bereits von eRaaaa angemerkt - in der actionPerformed nicht jedesmal einen neuen FileChooser erzeugen, dann hast Du zumindest bei mehrfachen Aufrufen innerhalb einer "Arbeitssitzung" immer das zuletzt verwendete Verzeichnis.
Wenn Du dann noch willst, dass er beim nächsten Start der Applikation immer noch weiss, welches Verzeichnis zuletzt verwendet wurde, musst Du das speichern. In einer Datei, per Properties oder Preferences, in einer Datenbank... ja nach Bedarf und Systemumgebung.
 

iPhone007

Mitglied
Hallo... so wie ich das jetzt verstanden habe sollte es in etwa so aussehen:

Code:
	public void JFileChooser() {
	
	//Create a file chooser with default open directory
	final JFileChooser fc = new JFileChooser("C:\\");
	fc.setFileFilter(new HTMLFileFilter());
	//In response to a button click:
	int returnVal = fc.showOpenDialog(jMenuItemOpenProfile);

	if( returnVal == JFileChooser.APPROVE_OPTION ) {
		File returnOpenProfilePath = fc.getSelectedFile();
		//initComponents();
		jTreeProfile = initProfileDescriptionGUI(
				returnOpenProfilePath.getAbsolutePath(),
				jTreeProfile,jTextPaneItemInfCim,jTextPaneItemInfDesc,jScrollPaneProfile);
	}
	}
	
	private void jMenuItemOpenProfileActionPerformed(java.awt.event.ActionEvent evt) {                                                     
	JFileChooser();
	}

jedoch weiss ich nicht wie ich es machen sollte das er nicht jedes mal den Pfad überschreibt...


Sry bin Anfänger, ist sicherlich relativ einfach, aber .... :(

Gruss
Iphone007
 

Michael...

Top Contributor
Nein. Jetzt hast Du den ganzen Code in eine Methode ausgelagert (Methodennamen beginnen üblicherweise mit einem Kleinbuchstaben und sind sprechend, z.B. createFileChooser()) es wird aber dennoch mit jedem Buttonclick ein neuer FileChooser erzeugt. fc muss eine Instanzvariable Deiner Klasse werden. So in etwa:
Java:
public class MyClass {
    private JFileChooser fileChooser;
    public MyClass() {
        fileChooser = new JFileChooser("C:\\");
        fileChooser.setFileFilter...
        ...
        button.addActionListener(new ActionListener(){
             public void actionPerformed(ActionEvent evt) {
                 fileChooser.showOpenDialog...
                 ...
             }
        });
    }
}
 
T

Tomate_Salat

Gast
@hansmueller
Das dachte ich auch, dies ist mein Plan B, aber ich dachte das es einfachen und sauberer geht deswegen will ich es zuerst irgendwie anders, einfacher versuchen.

Plan B?! Was passiert den mit dem ausgewählten Pfad? Wird der einfach verworfen, wird der dem Benutzer überhaupt angezeigt?

Wenn ich diese Komponente benutzt habe, dann eigentl. immer in Zusammenarbeit mit einem JTextField um dem Benutzer den Pfad anzuzeigen. Da kann der Benutzer ggf. den Pfad noch anpassen. Ist der Pfad existent, orientiert sich der FileChooser auch an diesem. Ansonsten wie hier schon gesagt wurde: Den Chooser nicht n-mal neu initalisieren, dann kann er auch von seinem zuletzt gewählten Pfad aus die Strukturen anzeigen, sollte der eingegebene Pfad nicht existent sein

Ich persönlich hasse es, wenn ich einen Pfad im FileChooserDialog sich von dem im Textfeld unterscheidet.

MFG

Tomate_Salat
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F CPU Last eines Thread ausfindig machen Allgemeine Java-Themen 0
B System CPU Zeit / Last auslesen Allgemeine Java-Themen 2
T Dateieigenschaft "letzter Zugriff" "last acce Allgemeine Java-Themen 5
B 100% CPU-Last - wg. Java? Allgemeine Java-Themen 6
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
S Umstellung von File auf Path - Probleme mit Stream Allgemeine Java-Themen 5
N File Path mit Variablen angeben Allgemeine Java-Themen 1
G javafx "class path" exception Allgemeine Java-Themen 5
M SQL-Developer Installation: Unable to launch the Java Virtual Machine Located at path msvcr100.dll Allgemeine Java-Themen 1
D Eclipes Build Path Allgemeine Java-Themen 9
S class path resource [config.properties}] cannot be opened because it does not exist Allgemeine Java-Themen 4
T Erste Schritte FAIL - Deployed application at context path / but context failed to start Allgemeine Java-Themen 1
A get current path with Drive Letter, instead of UNC path Allgemeine Java-Themen 7
J Java getMethodName and Path Allgemeine Java-Themen 6
M nio path Allgemeine Java-Themen 1
P Tomcat Deploy path Allgemeine Java-Themen 2
reibi JNA - Native Acess - Library Path Allgemeine Java-Themen 2
P Methoden Path.toFile().canRead vs Path.isReadable Allgemeine Java-Themen 7
E NetBeans warning: [options] bootstrap class path not set in conjunction with -source 1.6 Allgemeine Java-Themen 4
H java.library.path mit einer Batch-Datei einstellen Allgemeine Java-Themen 3
S Path abfahren? Allgemeine Java-Themen 6
R java in der konsole nicht gefunden trotz jre,jdk,home und path Allgemeine Java-Themen 4
J Java Pfad nicht mehr in Path Variablen??? Allgemeine Java-Themen 2
M net4j in Eclipse, installiert aber nicht im Build-path Allgemeine Java-Themen 4
J Eclipse Java Build Path / Java Problem??? Allgemeine Java-Themen 13
J Path-Eintrag unter Windows 7 Allgemeine Java-Themen 11
G java.libary.path Allgemeine Java-Themen 7
Lufti Unterschied zwischen Djava.library.path und Class-Path im Manifest? Allgemeine Java-Themen 2
G Umgebungsvariabeln auslesen (Path, Temp, oder eigene) Allgemeine Java-Themen 2
M Eclipse -> Build Path Allgemeine Java-Themen 8
B Grundlegendes zu JAVA_HOME und PATH Allgemeine Java-Themen 9
C Class-Path in Manifest Allgemeine Java-Themen 3
A java.library.path festlegen. Allgemeine Java-Themen 5
D PATH Varaibel für exex() laden Allgemeine Java-Themen 10
foobar java.library.path Property setzen Allgemeine Java-Themen 5
B frage zu "file.renameTo()" bzw. abstract path allg Allgemeine Java-Themen 8
V Alle Daten in einen path bekommen? listfiles()? Allgemeine Java-Themen 8
S working path ermitteln Allgemeine Java-Themen 2
W Jar-File Start nur über Terminal Allgemeine Java-Themen 13
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
D Read JSON File Problem Allgemeine Java-Themen 9
C jar File mehrfach aufrufen (als Windows Dienst) Allgemeine Java-Themen 5
izoards Zugriff auf gemeinsame Ressource (CSV-File) Allgemeine Java-Themen 3
S Class File Editor -> Source not found Allgemeine Java-Themen 4
F jar File ausführen Allgemeine Java-Themen 14
M File Binary Representation Allgemeine Java-Themen 1
N jar File auf Mac mit Doppelklick starten Allgemeine Java-Themen 5
O Input/Output java.io.File beenden Allgemeine Java-Themen 5
G File not found - nach dem Kompilieren Allgemeine Java-Themen 6
T Jar File zu exe... Allgemeine Java-Themen 3
M Foreign Memory API / Memory-Mapped File Allgemeine Java-Themen 0
R Delete files before creating new from temp using Java file method Allgemeine Java-Themen 1
S File lesen und schreiben Java 6 Allgemeine Java-Themen 2
T String-Manipulation beim Ablauf in Eclipse und als JAR-File Allgemeine Java-Themen 8
F Input/Output FileNotFoundException, obwohl File existiert Allgemeine Java-Themen 5
G Excel File öffnen, in Zelle schreiben, abspeichern Allgemeine Java-Themen 6
L JAR-File auf Ilias (LMS) laufen lassen Allgemeine Java-Themen 0
ralfb1105 Classpath Directory fuer Properties File Allgemeine Java-Themen 2
L File beim Kopieren in einen anderen Ordner umbenennen Allgemeine Java-Themen 6
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11
A File lesen Codierung Charset Allgemeine Java-Themen 5
J .java-Dateitext Compile zur Laufzeit ohne File Allgemeine Java-Themen 15
M Key-File im selben Ordner speichern? Allgemeine Java-Themen 18
I TrueZip add file to archive Allgemeine Java-Themen 10
T Probleme mit dem Pfad zum Propertie file Allgemeine Java-Themen 7
J ftp - delete file ohne appache Allgemeine Java-Themen 8
X Klassen File-Klasse wird als Directory markiert Allgemeine Java-Themen 8
T ImageIO.read -> Can`t read input file Allgemeine Java-Themen 11
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
C Swing File[] als klickbare links in irgendeinem Swing Element Allgemeine Java-Themen 3
H Kennt sich jemand mit Eclipse und dem Thema Jar-File aus ? Allgemeine Java-Themen 6
H Laden einer (Resourcendatei) aus einem Jar-File Allgemeine Java-Themen 17
C Authentifizierung mit java.nio.file? Allgemeine Java-Themen 5
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
M xlsx File auslesen Exception occured Allgemeine Java-Themen 13
offi Drag and Drop mehrerer File aus Explorer in JTable Allgemeine Java-Themen 1
G Java/LibGDX File Loading Exception Allgemeine Java-Themen 2
Cromewell JavaFX FXML-File lädt unter Ubuntu nicht Allgemeine Java-Themen 7
D Java Anwendung mit dll File Allgemeine Java-Themen 5
AssELAss Log4j Logging Ausgabe für jede Klasse in seperates File Allgemeine Java-Themen 2
thet1983 Input/Output read properties file from classpath Allgemeine Java-Themen 3
J Umwandeln von URL zu File und danach kopieren geht nicht Allgemeine Java-Themen 1
J Properties file ändern Allgemeine Java-Themen 12
S Executable Jar File startet nicht unter Windows 10 Allgemeine Java-Themen 3
B Objekte anhand von Properties file Allgemeine Java-Themen 41
Dechasa Input/Output Write into File Allgemeine Java-Themen 2
N Maven ObjectMapper Error wenn das File gespeichert wird Allgemeine Java-Themen 0
H Security Manager (IIOException: Can't read input file!) Allgemeine Java-Themen 2
H File.listFiles() funktioniert nicht... Allgemeine Java-Themen 10
C Input/Output Problem bei Datei verschiebung mit File.move und Paths.get() Allgemeine Java-Themen 26
X Zeile unter einer bestimmen Zeile hinzufügen(File) Allgemeine Java-Themen 1
F Open source file übersetzen Phython -> Java Allgemeine Java-Themen 4
C file.delete() funktioniert bei zweiten aufruf nicht mehr Allgemeine Java-Themen 3
M Desktop jar File icon Ändern? Allgemeine Java-Themen 14
O Sax-Parser ließt XML-File doppelt Allgemeine Java-Themen 1
J Java Software Compare Files und Neue File erstellen Allgemeine Java-Themen 0
Thallius Custom File Chooser Allgemeine Java-Themen 1
C .jar File lässt sich nur über Konsole öffnen Allgemeine Java-Themen 1
J Java Download Filedownload File.getFileName Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben