Modale Dialoge Java6

fr3ak4l

Grünschnabel
Hallo zusammen

Ich habe da mal eine kleine Frage bezüglich Swing.
Wenn in einem Programm ein neuer modaler Dialog erstellt wird und man dann anschliessen mit der Taskleiste das Programm wechselt und per Taskleiste wieder zum JavaProgramm zurück wechselt, so sieht man nur den modalen Dialog und nicht die ganze Applikation.

Ist dies so oder muss man da noch irgendwas umstellen?

Z.B

JavaApplikation: MainFrame und ModalDialog1
Wechsel zu Firefox (JavaApplikation hinter dem Firefox Fenster)
Mittels Taskleiste wieder das Java Applikation hervorholen.
Nun ist die Reihenfolge der Fenster wie folgt: ModalDialog1->Firefox->MainFrame

Kennt ihr das Problem?

Grüsse
Fr3ak4l
 
Moin,

bin mir nicht ganz sicher ...
Aber es ist auf jeden Fall nicht 'ungefährlich', eine Applikation, bei der ein modaler Dialog geöffnet ist, per Taskleiste wieder hervorzuholen, wie ich hier auch schon leidvoll erfahren durfte ..... :-(

Es ist nämlich meistens so, dass mit dem Taskleisteneintrag 'nur' das Hauptfenster der App. verknüpft ist und auch dieses nach vorne geholt wird, NICHT der modale Dialog. Folge: dieser hängt unsichtbar dahinter und auch nicht irgendwie ansprechbar! Und da er ja modal ist,muss dann die gesamte App. per Taskmanager abgebrochen werden!

Also besser immer (in Deinem Fall) den Firefox über die Symbole oben rechts verkleinern, so dass die andere App. MIT modalen Dialog uaf dem Screen erscheint :)

Gruß
Klaus
 
Hm, wenn ich bei meinem Programm nen modalen Dialog oeffne, dann zu Firefox wechsel in der Taskleiste und dann per Taskleiste wieder auf mein Programm klick, ist die Reihenfolge wie vorher.
Modaler Dialog -> Applikation -> Firefox
Kann natuerlich unter Windows anders sein.
 
Ich kenne diesen *Schönheitsfehler*.
Hast du deinem Dialog einen *Parent* mitgegeben (siehe Konstruktor)?
Möglichweise hat es damit was zu tun?
 
Du könntest einen FocustListener einbauen, der beim entsprechenden Event beide fenster mit setAlwaysOnTop(true); und anschließend wieder mit setAlwaysOnTop(false); in den Vordergrund bringt.
 

Neue Beiträge

Zurück