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?

War es hilfreich?

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.

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top