JFileChooser: kann keinen ActionListener hinzufügen

Status
Nicht offen für weitere Antworten.
O

OldSchool

Gast
HI @ all!

Hab folgenden Code:

Code:
public class FileExport extends JFileChooser implements ActionListener {
...
...
    private int returnVal = -1;


    public FileExport(JFrame frame) {
       
        returnVal = this.showSaveDialog(frame);      
        addBehaviour();
    } //Konstruktor


    private void addBehaviour() {
        this.addActionListener(this);
    } //addBehaviour()


    public void actionPerformed(ActionEvent e) {

        if (returnVal == JFileChooser.APPROVE_OPTION) {
            ...
            ...            
         }
     } //actionPerformed()

} //class FileExport


Nun zu meinem Problem:

Die Klasse reagiert einfach nicht auf den ActionListener. Die addBehaviour()-Methode wird aber abgearbeitet.
Weiß jemand warum? :bahnhof:
 
B

Beni

Gast
Code:
    public FileExport(JFrame frame) {
       
        returnVal = this.showSaveDialog(frame);      
        addBehaviour();  // zu diesem Zeitpunkt ist das ActionEvent schon lange abgefeuert worden. Denn der Dialog stoppt diese Methode, bis er wieder geschlossen wurde.
// im übrigen: macht es Sinn jedes mal einen zusätzlichen ActionListener anzufügen?

    } //Konstruktor


    private void addBehaviour() {
        this.addActionListener(this);
    } //addBehaviour()


    public void actionPerformed(ActionEvent e) {

// benutz das Actioncommand des Events. Denn "returnVal" wird erst gesetzt, nachdem diese Methode aufgerufen wurde.
//        if ( returnVal == JFileChooser.APPROVE_OPTION) {
        if (e.getActionCommand().equals( APPROVE_SELECTION ) ) {
            ...
            ...            
         }
     } //actionPerformed()

} //class FileExport
 
G

Guest

Gast
Thx, funktioniert :D

Hätt aber noch ein paar Verständnis-Fragen:


  • Was meinst du damit immer einen zusätzlichen ActionListener hinzuzufügen? Was soll das bringen? Außerdem kann
    ich ja nur eine actionPerformed()-Methode deklarieren, oder meinst du mit internen Klassen?

    Könnte ich statt einem ActionListener auch die approveSelection()-Methode überschreiben? Hätte das den gleichen Effekt?
--------------------

Hab jetzt leider ein weiteres Problem:

Hab den JFileChooser, damit ich eine Datei abspeichern kann. Hab einen fixen String für den Dateinamen. Das Problem ist jetzt, dass der FileChooser bei Auswahl irgenwelches Verzeichnisses, sofort den Pfad + Dateinamen (den ich hinzufüge) anzeigen soll. Jedoch zeigt er immer nur das Verzeichnis an.
Die ActionListener-Methode reagiert aber nur, wenn der JFileChooser beendet wird, also Cancel oder Save gedrückt worden ist. Ich bräuchte einen ActionListener der im FileChooser, jedesmal wenn ein Verzeichnis ausgewählt wurde, den Pfad + Dateiname anzeigt.
 
B

Beni

Gast
Ich schreibe das immer so: (aber das ist nicht deine Frage...)

Code:
    public FileExport(JFrame frame) {
       
        returnVal = this.showSaveDialog(frame);  
        if( returnVal == JFileChooser.APPROVE_OPTION ){
           [ ... speichern ... ]
        }


Du kannst ja nicht genau wissen, wie die angemeldeten ActionListener verwaltet werden.
Also gehen wir mal davon aus, das ist eine Liste. In einer Liste kann ein Element mehr als nur einmal speichern.
Also kann theoretisch derselbe ActionListener mehr als einmal anmelden, und er wird mehr als einmal angesprochen.


Ich bräuchte einen ActionListener der im FileChooser, jedesmal wenn ein Verzeichnis ausgewählt wurde, den Pfad + Dateiname anzeigt.
Wieso? Was willst du damit machen?
 
G

Guest

Gast
Also kann theoretisch derselbe ActionListener mehr als einmal anmelden, und er wird mehr als einmal angesprochen.

Aso meinst das. Ok, bei mir nicht relevant, da ich nur einen FileChooser hab.

Ich bräuchte einen ActionListener der im FileChooser, jedesmal wenn ein Verzeichnis ausgewählt wurde, den Pfad + Dateiname anzeigt.

Wieso? Was willst du damit machen?

Ok es geht darum. Der User wählt nur das Verzeichnis aus und im Pfad-Feld soll jedesmal der Dateiname mitangezeigt werden. Der User braucht also nicht selbst einen Dateinamen angeben, sondern der wird vorgeschlagen.

z.B.:
User wählt c:\Protokoll\ aus und dann steht das c:\Protokoll\Protokoll_Spiel_10 (Dateiname --> von mir angehängt).
Ich brauch das, weil der Dateiname immer anders sein kann, abhängig vom Spiel das er ausgewählt hat.
 
R

Roar

Gast
dochdoch, das ich beim dashboard gemacht :-D das musst du so machen:

Code:
// fc is der filechooser
		fc.addPropertyChangeListener(new PropertyChangeListener() {
			public void propertyChange(PropertyChangeEvent evt) {
				if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(evt.getPropertyName())) {
					// oder 	DIRECTORY_CHANGED_PROPERTY 
					JFileChooser chooser = (JFileChooser)evt.getSource();
					File f = fc.getSelectedFile();
					// dein code...
				}
			}
		}) ;
 
G

Guest

Gast
Danke, aber krieg das prog nicht zu laufen.

Ich mach nicht eine eingeschachtelte Klasse wie du, sondern hab die propertyChange-Methode direkt in meiner FileExport-Klasse importiert.

Jedoch bringt mir der JBuilder die Fehlermeldung, dass er ein weiteres Klammernpaar "{}" haben will, wenn ich
das Interface so implementier.

Code:
1.Variante:
public class FileExport extends JFileChooser implements PropertyChangeListener ActionListener {
}

2.Variante:
public class FileExport extends JFileChooser implements PropertyChangeListener implements ActionListener {
}
 
B

Beni

Gast
Du muss ein Komma rein:
Code:
public class FileExport extends JFileChooser implements PropertyChangeListener, ActionListener {
}
 
G

Guest

Gast
Ok, hab's derweil hingekriegt.

Jetzt häng ich aber schon wieder.
Ok, ich will jetzt mit der setCurrentDirectory den ganzen Pfad + den Dateinamen in das Dateiname-Feld reinschreiben. Jedoch reagiert der FileChooser darauf nicht. Er reagiert aber auf die Methode --> hab mit System.printlns ausprobiert.

Code:
  public void propertyChange(PropertyChangeEvent evt) {

    if(JFileChooser.DIRECTORY_CHANGED_PROPERTY.equals(evt.getPropertyName())) {

      this.setCurrentDirectory(new File(getCurrentDirectory().getPath() + "\\" + fileName)); //PROBLEMZEILE
    }
 } //propertyChange
 

OldSchool

Mitglied
Hab ich schon! Geht nicht :cry:

Hab jetzt folgendes versucht: ein System.println (siehe code) eingefügt und der jeweilige Pfad wird richtig
in der console ausgegeben. Nur im FileChooser nicht.

Code:
public void propertyChange(PropertyChangeEvent evt) {

    if(JFileChooser.DIRECTORY_CHANGED_PROPERTY.equals(evt.getPropertyName())) {

     //TEST-Printlns 
     System.out.println("PFAD:" + getCurrentDirectory().getPath() + "\\" + createFileName());
  
      this.setSelectedFile(new File(getCurrentDirectory().getPath() + "\\" + createFileName()));
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tommy135 JFileChooser ist sehr langsam AWT, Swing, JavaFX & SWT 13
T JFileChooser ist Englisch und bleibt Englisch und bleibt Englisch... AWT, Swing, JavaFX & SWT 15
M Swing jFileChooser Header viewTypeDetails setFont AWT, Swing, JavaFX & SWT 0
I JFileChooser mit System L&F bei anderem L&F der eigtl. Anwendung AWT, Swing, JavaFX & SWT 0
Meeresgott AWT JFileChooser bestimmte Ordner anzeigen AWT, Swing, JavaFX & SWT 16
S Swing JFileChooser best. Ordner wie Dateien behandeln AWT, Swing, JavaFX & SWT 4
H Swing JFileChooser für nicht existierendes Unterverzeichnis AWT, Swing, JavaFX & SWT 3
javampir Swing Anzeige der FileFilter im JFileChooser AWT, Swing, JavaFX & SWT 0
L JFileChooser Datentyp Unterscheidung AWT, Swing, JavaFX & SWT 6
K JFileChooser NullPointerException AWT, Swing, JavaFX & SWT 7
H JFileChooser Dateinamen vorgeben (Save Dialog) AWT, Swing, JavaFX & SWT 9
Neumi5694 Swing JFilechooser - Detailansicht AWT, Swing, JavaFX & SWT 0
M JFileChooser Look and Feel AWT, Swing, JavaFX & SWT 2
T JFileChooser Rahmenfarbe ändern AWT, Swing, JavaFX & SWT 1
K Pfad mit JFileChooser ausgeben lassen AWT, Swing, JavaFX & SWT 7
C JFileChooser hängt bei Ausführung mit Terminal AWT, Swing, JavaFX & SWT 2
T Swing JFileChooser und FileView AWT, Swing, JavaFX & SWT 4
M Einzelne Ordner im JFileChooser ausgrauen? AWT, Swing, JavaFX & SWT 4
H Swing JFileChooser inline editing AWT, Swing, JavaFX & SWT 4
D JFileChooser anpassen AWT, Swing, JavaFX & SWT 5
AssELAss Verzeichnis JFileChooser aktualisieren AWT, Swing, JavaFX & SWT 0
A JFileChooser Datei speichern AWT, Swing, JavaFX & SWT 4
A Datei weiterverwenden mit JFileChooser AWT, Swing, JavaFX & SWT 6
T Importer-Auswahl im JFileChooser AWT, Swing, JavaFX & SWT 3
N JFileChooser bzw. FileDialog Problem AWT, Swing, JavaFX & SWT 10
A Swing JFileChooser - Größenänderung nach Aufruf von showOpenDialog() AWT, Swing, JavaFX & SWT 15
D Serverdirectory auf Client browsen mit JFileChooser AWT, Swing, JavaFX & SWT 7
F icon aus exe auslesen mithilfe des JFilechooser ? AWT, Swing, JavaFX & SWT 4
C JFileChooser und Netzwerk Laufwerke AWT, Swing, JavaFX & SWT 4
Iron Monkey JFileChooser - Drag and Drop AWT, Swing, JavaFX & SWT 5
J JFileChooser - Datei speichern AWT, Swing, JavaFX & SWT 7
M Element aus JList eines JFileChooser entfernen AWT, Swing, JavaFX & SWT 3
P JFileChooser mit verschidene Endungen AWT, Swing, JavaFX & SWT 12
S Swing Ordner im JFileChooser auswählen AWT, Swing, JavaFX & SWT 2
C JFileChooser bringt parent durcheinander AWT, Swing, JavaFX & SWT 2
N JFileChooser mit Dateinamenvorgabe AWT, Swing, JavaFX & SWT 9
S JFileChooser GTK (Ubuntu) "hässlich" AWT, Swing, JavaFX & SWT 2
A Swing JFileChooser mit modifiziertem Kontextmenü AWT, Swing, JavaFX & SWT 4
S JFileChooser öffnet den falschen Ordner AWT, Swing, JavaFX & SWT 4
A Swing JFilechooser zeigt verzeichnisse nicht an AWT, Swing, JavaFX & SWT 2
A Swing JFileChooser - Anzeige in Echtzeit filtern AWT, Swing, JavaFX & SWT 10
M JFileChooser umbenennen verbieten AWT, Swing, JavaFX & SWT 4
Helgon JFileChooser öffnet sich 2x AWT, Swing, JavaFX & SWT 12
K JFileChooser mit Zusatzfunktionen AWT, Swing, JavaFX & SWT 8
GUI-Programmer JFilechooser, mehrere Datein selektieren und Reihenfolge (2) AWT, Swing, JavaFX & SWT 8
V JFileChooser auf Mac und Netzwerkordner AWT, Swing, JavaFX & SWT 2
B JFileChooser breite der Spalten? AWT, Swing, JavaFX & SWT 5
M JFileChooser setCurrentDirectory() - Verzeichnis relativ zum Code/binary AWT, Swing, JavaFX & SWT 14
P Swing Dateinamen im JFileChooser vorschlagen AWT, Swing, JavaFX & SWT 11
M JFileChooser Abfangen des DateiTypen möglich?? AWT, Swing, JavaFX & SWT 5
T Swing JFileChooser --> Desktop und Laufwerke im "Suchen in" - Drop Down AWT, Swing, JavaFX & SWT 3
N JFileChooser - Keine Funtkion AWT, Swing, JavaFX & SWT 13
T JFileChooser - "Öffnen-Button" aktivieren/deaktivieren möglich??? AWT, Swing, JavaFX & SWT 2
jueki Aktuell eingestellten Filter aus einem JFileChooser abfragen. AWT, Swing, JavaFX & SWT 5
F Swing JFileChooser - Dateinamen nicht editierbar machen AWT, Swing, JavaFX & SWT 8
I Fehler bei JFileChooser AWT, Swing, JavaFX & SWT 2
K JFileChooser mehrere Dateien markieren ohne STRG AWT, Swing, JavaFX & SWT 4
Ivan Dolvich [Linux] JFileChooser sieht komisch aus... AWT, Swing, JavaFX & SWT 12
M Zurück-Button in JFileChooser AWT, Swing, JavaFX & SWT 9
N JFileChooser AWT, Swing, JavaFX & SWT 4
D Problem mit JFileChooser -> Daten werden mit anführungsstriche in JTable geschrieben AWT, Swing, JavaFX & SWT 8
S JFileChooser Dateiname Autovervollständigung AWT, Swing, JavaFX & SWT 2
B JDialog über JFileChooser anzeigen AWT, Swing, JavaFX & SWT 6
I Swing JFileChooser '\' im Pfad... AWT, Swing, JavaFX & SWT 2
K Swing JFileChooser zum Speichern - FileFilter AWT, Swing, JavaFX & SWT 2
M Swing Execption beim JFileChooser AWT, Swing, JavaFX & SWT 4
kodela Swing JFileChooser und die Datei-Extension AWT, Swing, JavaFX & SWT 3
jueki eigenen Button in JFileChooser einfügen AWT, Swing, JavaFX & SWT 7
alderwaran jFileChooser showSaveDialog, dateinamen werden mit pfadnamen überschrieben beim navigieren AWT, Swing, JavaFX & SWT 1
B Swing Suche JFileChooser zum Speichern AWT, Swing, JavaFX & SWT 2
Iron Monkey JFileChooser DIRECTORIES_ONLY AWT, Swing, JavaFX & SWT 4
Semox Swing JFileChooser: Problem Approve oder Cancel abzufangen AWT, Swing, JavaFX & SWT 7
H JTree - nach Auswahl aus JFileChooser wird nur der erste Knoten angezeigt AWT, Swing, JavaFX & SWT 3
kodela Sicherheitsabfrage mit JFileChooser AWT, Swing, JavaFX & SWT 2
DARK_ZERATO2 jFileChooser AWT, Swing, JavaFX & SWT 4
G JFileChooser Problem AWT, Swing, JavaFX & SWT 4
G Swing JFileChooser Event für neue Directory? AWT, Swing, JavaFX & SWT 5
P JFileChooser AWT, Swing, JavaFX & SWT 2
M Swing JFileChooser und JFrame AWT, Swing, JavaFX & SWT 5
G Swing JFileChooser in einem JPanel? AWT, Swing, JavaFX & SWT 3
J JFileChooser Dateiauswahl beim Tippen einschränken AWT, Swing, JavaFX & SWT 3
M Swing JFileChooser mit Windows 7 AWT, Swing, JavaFX & SWT 8
R JFileChooser - Initiales Verzeichnis auswählen AWT, Swing, JavaFX & SWT 8
brainray JFileChooser - es sollen nur Ordner wählbar sein AWT, Swing, JavaFX & SWT 2
T JFileChooser Problem AWT, Swing, JavaFX & SWT 3
N Mit JFileChooser ein Verzeichnis auswählen AWT, Swing, JavaFX & SWT 7
M Swing JFileChooser und versteckte Ordner AWT, Swing, JavaFX & SWT 2
F jFileChooser verwenden AWT, Swing, JavaFX & SWT 4
M Swing ImageIcon über JFileChooser einbinden AWT, Swing, JavaFX & SWT 4
F JFileChooser mal wieder AWT, Swing, JavaFX & SWT 2
ARadauer Swing JFileChooser mit Bildvorschau AWT, Swing, JavaFX & SWT 5
H Swing Dateiauswahldialog mit JFileChooser funktioniert unzuverlässig AWT, Swing, JavaFX & SWT 11
G Swing JFileChooser nur in Verzeichnis+Unterverzeichnisse AWT, Swing, JavaFX & SWT 5
K Swing JFileChooser AWT, Swing, JavaFX & SWT 6
M JFileChooser einschränken AWT, Swing, JavaFX & SWT 3
L JFileChooser braucht lang zum öffnen AWT, Swing, JavaFX & SWT 2
S NullPointerException bei JFileChooser AWT, Swing, JavaFX & SWT 8
M JFilechooser defaultdirectory AWT, Swing, JavaFX & SWT 5
C JFilechooser this.setAlwaysOnTop AWT, Swing, JavaFX & SWT 2
G JFileChooser - erkennen v. existierenden Dateien ohne Endung AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen


Oben