Java-swing.Wie zu warten, bis andere Jframes
-
06-07-2019 - |
Frage
In einem JFrame, wenn ich auf 'login', ich pop-up ein weiteres Jframe ist das login-Fenster.
Wie mache ich meine Haupt-Jframe warten Sie meine login Jframe zu beenden, bevor Sie etwas anderes tun?
Lösung
Verwenden Sie einfach ein modales Dialogfeld in der Stelle von einem Rahmen, so dass Sie nicht etwas anderes tun, bis es ' is closed
finden http://mindprod.com/jgloss/modal.html Erklärung und siehe http://www.java2s.com/Tutorial/Java/0240__Swing/ASimpleModalDialog.htm für die code-Beispiel
Wenn Sie darauf bestehen, mit einem JFrame, Sie könnte verwenden eine Problemumgehung, durch abdecken der andere Rahmen, die durch eine glassframe..Nicht allzu schöne Lösung, ich gebe es zu..
Andere Tipps
Ich Stimme zu, dass ein Modaler dialog, wäre die beste option hier, aber wenn ich die Antwort auf diese Frage in allgemeiner form, sagen wir:
Wie mache ich einen JFrame warten, für einen anderen JFrame?
Ich würde sagen, der einfachste Weg, um zu erreichen, dies ist durch die Registrierung und auslösen von Ereignis-Listenern.
- In Ihr "Kind" - Rahmen, register der "main" - Gestell als Ereignis-listener.
- In Ihrem "Haupt" - frame,
- implementieren Sie Ihre Wahl des listener, z.B.
ActionListener
- in der Methode wird aufgerufen, listener, z.B.
actionPerformed
, code die Logik behandelt, was geschieht bei jeder der Aktionen reagieren zu können, auf die in der "Kind" - Rahmen.
- implementieren Sie Ihre Wahl des listener, z.B.
Man kann sich leicht implementieren Sie diese zu einem ny Reihe von Situationen, einschließlich der login-Szenario beschrieben, in Frage.
Verwenden JModalFrame anstelle von JFrame.