Modalität von FileDialog

VfL_Freak

Top Contributor
Hallo zusammen,

habe eine kurze Frage zur Verwendung der Klasse "FileDialog".

Wie folgt lege ich bei einem bestimmten Buttonklick den Dialog an:
Java:
public void btnLoadTemplate_actionPerformed( ActionEvent e ) 
{
    FileDialog fdlg = new FileDialog( this, "Lokale Vorlage laden..." );
    fdlg.setFilenameFilter( new java.io.FilenameFilter() 
    {
        public boolean accept( java.io.File dir, String s ) 
        {
            // .....
        }
        // ....
    } );
    // ....
In diesem Fall ist this der aufrufende Dialog (von JDialog abgeleitet); ich habe es auch schon mit dem aufrufenden ParentFrame (von JFrame) versucht.

Obwohl ja FileDialog lt. API modal sein soll, ist er es bei mir in beiden genannten Varianten lustigerweise nicht!!
Sprich: klicke ich nach dem Aufpoppen auf den aufrufenden Dialog rsp. das dahinterliegende Fenster, dann verschwindet er im Hintergrund. Ich kann dann sogar nacheinander mehrere derartige Fenster aufrufen .....

Was mache ich falsch?
Die Eigenschaft "modal" kann ich beim Aufruf (zumindest bis Java6) nicht setzen ..... :autsch:

Danke und Gruß
Klaus
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
wieso so kompliziert mit Filter und ohne vollständigen Code,
gibt es denn auch bei dir irgendeine Variante, wo das modal vorliegt?

z.B. hier ein vollständiges überall testbares Programm:
Java:
public class Test
{
    public static void main(String[] args)
    {
        Frame f = new Frame();
        f.setVisible(true);

        FileDialog fdlg = new FileDialog(f, "Lokale Vorlage laden...");
        fdlg.setVisible(true);
    }
}
bei mir ist das modal, bei dir nicht?

kommt übrigens JFileChooser bei Swing-JFrame noch in Betracht statt AWT-FileDialog?
 

VfL_Freak

Top Contributor
Moin Slater,

wieso so kompliziert mit Filter und ohne vollständigen Code,
gibt es denn auch bei dir irgendeine Variante, wo das modal vorliegt?
Nein, ist die einzige Stelle, wo das verwendet wird ....

z.B. hier ein vollständiges überall testbares Programm:
Java:
public class Test
{
    public static void main(String[] args)
    {
        Frame f = new Frame();
        f.setVisible(true);

        FileDialog fdlg = new FileDialog(f, "Lokale Vorlage laden...");
        fdlg.setVisible(true);
    }
}
bei mir ist das modal, bei dir nicht?
Stimmt, das war mein Codebeispiel ziemlich mistig :D
Nein, mir ist das eben nicht modal ;(

kommt übrigens JFileChooser bei Swing-JFrame noch in Betracht statt AWT-FileDialog?
Stimmt - DAS ist mal 'ne Idee :toll: werde das gleich mal umbauen und testen !

Oft sieht man leider den Wald vor Bäumen nicht :eek:

Danke und Gruß
Klaus
 
S

SlaterB

Gast
setModal() gibts noch als Methode, isModal() kann man auch abfragen,
die set-Methode muss man vor setVisible(true) aufrufen

der nächste Schritt wäre also dorthin, bzw. auch ganz normale Dialoge mit modal zu testen,
freilich könnte theoretisch alles nicht funktionieren und man wäre nicht schlauer
 

VfL_Freak

Top Contributor
Moin,

setModal() gibts noch als Methode, isModal() kann man auch abfragen,
die set-Methode muss man vor setVisible(true) aufrufen
Ach ... Mist ;( die vererbten Methoden .... an die hatte ich nicht gedacht und in der API überlesen

der nächste Schritt wäre also dorthin, bzw. auch ganz normale Dialoge mit modal zu testen,
freilich könnte theoretisch alles nicht funktionieren und man wäre nicht schlauer
Habe jetzt beide Methoden eingebaut (noch mit FileDialog) und der Dialog wird tatsächlich als modal angezeigt :)
Nur hilft das nix, der Dialog verschwindet ggf. weiterhin hinter dem Hauptfenster der Anwendung ....

Werde doch mal mit dem JFileChooser versuchen !

Gruß
Klaus

[OT]
Was ist eigentlich mit Hansa los?
Das sieht ja nicht gut aus, oder ??
[/OT]
 

VfL_Freak

Top Contributor
Moin,

so, mit dem JFileChooser klappt es hervorragend und so, wie ich es wollte :D

Hier mal der gesamte fertige Code (Lesen beliebiger *.txt-Dateien aus dem aktuellen (Aufruf-)Ordner) :
Java:
	public void btnLoadTemplate_actionPerformed(ActionEvent e) 
	{
		JFileChooser fc = new JFileChooser( "." );
		fc.setFileFilter( new FileFilter()
	    {
			@Override 
			public boolean accept( File f )
			{
				return f.isDirectory() || f.getName().toLowerCase().endsWith( ".txt" );
			}
			@Override 
			public String getDescription()
			{
				return "Template-Texte";
			}
	    } );

		int iState = fc.showDialog(  this, "Lokale Vorlage laden...");
		if( iState == JFileChooser.APPROVE_OPTION )
	    {
			try 
			{
				BufferedReader f = new BufferedReader( new FileReader(fc.getSelectedFile()) );
				try 
				{
					String line;
					while( (line = f.readLine()) != null ) 
					{
						jTextAreaMain.setText(jTextAreaMain.getText() + line + "\n");
					}
				} 
				catch (IOException ex1) 
				{
					ex1.printStackTrace();
				}
			} 
			catch (FileNotFoundException ex) 
			{
				ex.printStackTrace();
			}
		}
		
    	// Abschließend ggf. den Button "Übernehmen" aktivieren
		if( (tfNummerAdresse.getText().length() > 0) && (jTextAreaMain.getText().length() > 0) )
		{
			btnUebernehmen.setBackground( Color.red );
			btnUebernehmen.setEnabled( true );
		}
	}

Danke für die Unterstützung!

Gruß
Klaus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S modalität weiterziehen? AWT, Swing, JavaFX & SWT 5
I AWT java.awt.FileDialog - "coffee cup"-Icon lässt sich nicht ersetzen AWT, Swing, JavaFX & SWT 14
N JFileChooser bzw. FileDialog Problem AWT, Swing, JavaFX & SWT 10
J AWT Einmal FileDialog-Beispiel für Dumme bitte AWT, Swing, JavaFX & SWT 6
B AWT FileFilter beim FileDialog AWT, Swing, JavaFX & SWT 4
B AWT FileDialog Filter wird ignoriert AWT, Swing, JavaFX & SWT 7
hdi SWT FileDialog wird an scheinbar beliebiger Position angezeigt AWT, Swing, JavaFX & SWT 2
X Dateiendung im Filedialog AWT, Swing, JavaFX & SWT 8
P SWT - "Combo" aus dem Windows-FileDialog AWT, Swing, JavaFX & SWT 3
technolion FileDialog/keine Multi-Selektion vs. JFileCHooser/kein LaF AWT, Swing, JavaFX & SWT 2
S Filedialog - Dateiname vorbelegen AWT, Swing, JavaFX & SWT 6
P [SWT] FileDialog unsichtbar machen bzw. positionieren AWT, Swing, JavaFX & SWT 8
G FileDialog in SWT AWT, Swing, JavaFX & SWT 2
N Buttons von Filedialog umbenennen AWT, Swing, JavaFX & SWT 3
TheJavaKid DIRECTORY ONLY im FileDialog AWT, Swing, JavaFX & SWT 2
T setSize-Problem in FileDialog AWT, Swing, JavaFX & SWT 4
C AWT FileDialog AWT, Swing, JavaFX & SWT 22
B FileDialog Frage AWT, Swing, JavaFX & SWT 9
R Verzeichnis-Auswahl mit FileDialog ? AWT, Swing, JavaFX & SWT 3
S AWT: FileDialog AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben