Non-Modal JFileChooser erzeugen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallöle,

ich möchte ein JFileChooser als nicht-modal erzeugen, alle meine Versuche sind jedoch gänzlich fehlgeschlagen...

(der JFileChooser auswahl soll auf nicht modal gesetzt werden)
Code:
import javax.swing.JWindow;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Toolkit;
import java.awt.Event;
import java.awt.Dimension;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import java.io.File;

class JSWS extends JWindow{
	public JSWS(){
		JButton exit = new JButton("Exit");
		exit.addActionListener( new ActionListener() {
			public void actionPerformed( ActionEvent e ) {
				Toolkit.getDefaultToolkit().beep();
				setVisible(false);
				dispose();
				System.exit(0);
			}
		});
		add(exit);
		pack();
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		setLocation(d.width *8/10, d.height *8/10 );
		Toolkit.getDefaultToolkit().beep();
		setVisible(true);
		JFileChooser auswahl = new JFileChooser();
		auswahl.setMultiSelectionEnabled(true);
		int retval = auswahl.showDialog(this, null);
		if (retval == JFileChooser.APPROVE_OPTION) {
			File [] files = auswahl.getSelectedFiles();
			if (files != null && files.length > 0) {
				String filenames = "";
				for (int i = 0; i < files.length; i++) {
				filenames = filenames + "\n" + files[i].getPath();
				}
				JOptionPane.showMessageDialog(this, "You chose these files: \n" + filenames);
			}
		}
	}

	public static void main(String args[]) {
		new JSWS();
	}
}
Bitte keine Vorschläge in Richtung System.exit Funktion einfach bei schließen des Dialog_Open-Dingsdabumbsda einzubauen, da sich dieses ExitWindow durch das ganze Porgramm(dies ist erst der Anfang) ziehen soll - Danke!


Vielen Dank für weiter Vorschläge.

Ich habe bereits bei Google soetwas zum ColorChooser gefunden, aber die haben erstmal den ganzen OriginalCode nachprogrammiert, ich hoffe es geht auch einfacher...

Vielen Dank!

Mit freundlichen Grüßen

Matthias Walther
 
G

Guest

Gast
new JFileChooser(...).createDialog(...).setModal(false)?

new JDialog(...).isModal():false.add(new JFileChooser(...))?
 
R

Roar

Gast
jo createDialog is aber protected... du könntest aber einfach eine unterklasse von JFileChooser erstellen, die createDialog() überschreiben, dort super.createDialog() aufrufen, den zurückgelieferten JDialog nicht-modal machen und den dann zurückgeben
 

semi

Top Contributor
Roar hat gesagt.:
jo createDialog is aber protected... du könntest aber einfach eine unterklasse von JFileChooser erstellen, die createDialog() überschreiben, dort super.createDialog() aufrufen, den zurückgelieferten JDialog nicht-modal machen und den dann zurückgeben
Da wird das Dialogfenster nicht mal erscheinen. :bae:
In showDialog(...) in JFileChooser steht folgendes
Code:
dialog.show();
dialog.dispose(); 
dialog = null;
Irgendjemand geht da davon aus, dass show() blockiert bzw. dass das Dialog modal ist.
Lösung: showDialog(...) überschreiben oder besser eine eigene Methode hinzufügen.

Manchmal lohnt ein Blick auf den Code von Swing, um zu sehen, was die Freaks von SUN so machen. ;)
 

MPW

Top Contributor
Aha,

ich habe eure Fachsimpellei zwar verstanden, kann sie jetzt aber nicht richtig umsetzen(hab' noch nie 'ne Methode überschrieben...)

hab bisher das hier probiert...

Code:
import javax.swing.JFileChooser;
import javax.swing.JDialog;

class JFileChooserAllaMPW extends JFileChooser {
    protected JDialog createDialog(Component parent) throws HeadlessException {
   	    setModal(false);
   	    JDialog dialog = super.createDialog(parent);
   	    dialog.setResizable(false);
		return dialog;
	}
}

Aber ich krieg' immer das hier zu lesen:

C:\Programme\java\Progs\JSWS\JFileChooserAllaMPW.java:5: cannot find symbol
symbol : class Component
location: class JFileChooserAllaMPW
protected JDialog createDialog(Component parent) throws HeadlessException {
^
C:\Programme\java\Progs\JSWS\JFileChooserAllaMPW.java:5: cannot find symbol
symbol : class HeadlessException
location: class JFileChooserAllaMPW
protected JDialog createDialog(Component parent) throws HeadlessException {
^
C:\Programme\java\Progs\JSWS\JFileChooserAllaMPW.java:6: cannot find symbol
symbol : method setModal(boolean)
location: class JFileChooserAllaMPW
setModal(false);
^
3 errors

Process completed with exit code 1


Könntet ihr mir vielleicht nochmal helfen...Danke schonmal für die Tipps!

MfG
MPW
 
B

Beni

Gast
Die ersten beiden: du musst noch ein import auf "java.awt.Component" und auf die HeadlesException(weis gerade nicht, wo die ist. Aber die API hilft weiter) machen.

Zur 3. das "setModel" must du auf den Dialog anwenden. Da du den Dialog noch gar nicht hast: Reihenfolge der Befehle ändern.
(da muss dann "dialog.setModal(..)" stehen).
 

MPW

Top Contributor
Soderle,

dass hab' ich jetzt gemacht:

Code:
import javax.swing.JFileChooser;
import javax.swing.JDialog;
import java.awt.Component;
import java.awt.HeadlessException;

class JFileChooserAllaMPW extends JFileChooser {
    protected JDialog createDialog(Component parent) throws HeadlessException {
   	    JDialog dialog = super.createDialog(parent);
   	    dialog.setResizable(false);
		dialog.setModal(false);
		dialog.setLocation(0, 0);
		return dialog;
	}
}

und dann:

Code:
		int retval;
		JFileChooserAllaMPW auswahl = new JFileChooserAllaMPW();
		boolean nochmal = true;
		do {
			retval = auswahl.showDialog(this, "\"Namen.htm\" Auswählen");
			if (retval == JFileChooser.APPROVE_OPTION) {
				File  file = auswahl.getSelectedFile();
			}
		} while (retval == JFileChooser.APPROVE_OPTION && auswahl.getSelectedFile().toString().indexOf("namen.htm") < 0);


Was passiert ist follgendes...

Der Auswahldialog wird ganz kurz, 1/10 Sekunde oder so angzeigt, verschwindet wieder, nix mehr passiert, bis man auf exit klickt(ein weiteres Fenster, dass nur den JButton Exit enthält.).

MfG
MPW
 

MPW

Top Contributor
ich weiß jetzt auch warum....

weil jetzt nicht mehr auf den Dialog gewartet wird.....

ich hab' den nämlich jetzt in diese Schleife gepackt, die erst endet, wenn die namen.htm ausgewählt wird...(die oben hat ja einen bug, wenn nämlich direkt auf abbrechen geklickt wird ist ende)

Wie kann ich das machen, dass trotzdem auf eine Benutzeraktion gewartet wird, bis der Dialog zu ende ist...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Maximieren des Application-Modal Popup-Dialoges+Parent AWT, Swing, JavaFX & SWT 1
I Modal Window AWT, Swing, JavaFX & SWT 26
E Swing Dialog modal aufrufen AWT, Swing, JavaFX & SWT 2
S Swing Mehrere Modal-Dialoge übereinander AWT, Swing, JavaFX & SWT 5
Bluedaishi JDialog modal und JTextArea AWT, Swing, JavaFX & SWT 4
N Swing Fragen zu non-modal JDialog AWT, Swing, JavaFX & SWT 1
A JDialog (modal) blockiert alle Fenster! AWT, Swing, JavaFX & SWT 2
J Swing JInternalFrame modal setzen? AWT, Swing, JavaFX & SWT 13
B Swing JDialog modal, aber trotzdem Frame auswählbar AWT, Swing, JavaFX & SWT 2
T JPopup modal machen AWT, Swing, JavaFX & SWT 2
W SWT keybinding ESC bzw. [x] bei Shell (modal) AWT, Swing, JavaFX & SWT 2
H JDialog, Modal - Klassenübergreifend => Problem AWT, Swing, JavaFX & SWT 5
J Swing Probmel mit JDialog (Modal/FocusLost/Button) AWT, Swing, JavaFX & SWT 5
K JDialog zeigt keine Komponenten wenn es modal ist AWT, Swing, JavaFX & SWT 2
G JDialog Modal? AWT, Swing, JavaFX & SWT 1
C modal ignorieren? AWT, Swing, JavaFX & SWT 3
J VaterFrame des modal-Dialogs beklickbar AWT, Swing, JavaFX & SWT 12
S "normales" Fenster als modal einstellen AWT, Swing, JavaFX & SWT 2
G JPanel setEnabled modal AWT, Swing, JavaFX & SWT 3
megachucky JInternalFrame modal setzen AWT, Swing, JavaFX & SWT 3
E JFrame soll Modal sein! AWT, Swing, JavaFX & SWT 4
F Dialog (JOptionPane) modal machen AWT, Swing, JavaFX & SWT 3
Luma JDialog anpassen unmöglich / JFrame modal machen? AWT, Swing, JavaFX & SWT 10
R JFrame modal machen? AWT, Swing, JavaFX & SWT 3
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

Ähnliche Java Themen

Neue Themen


Oben