Swing Schließen von JDialog soll auch JFrame schließen.

D-AMP

Mitglied
Guten Abend liebes Java-Forum,

ich arbeite derzeit an einem Chat-Programm.
Beim öffnen des Client-GUI (JFrame) öffnet sich automatisch ein JDialog (das Anmeldungsfenster).
Der Client soll erst dann benutzt werden können, wenn man sich erfolgreich angemeldet hat. Deswegen möchte ich, dass beim schließen der Anmeldemaske, auch automatisch das JFrame geschlossen werden soll.

Vielen Dank schon mal!

Hier mal ein Codeschnipsel aus dem JDialog:

Java:
public class Anmeldung extends JDialog {
	private JLabel lblAnmeldung;
	private JLabel lblBenutzername;
	private JTextField textField;
	private JLabel lblPasswort;
	private JPasswordField passwordField;
	private JButton btnAnmelden;
	private JButton btnRegistrieren;
	private static Anmeldung anmeldung;
	/*Methode zum Verbinden des Anmeldungsfenster mit den GUIClient*/
	protected static Anmeldung get() {
		if (anmeldung == null)
			anmeldung = new Anmeldung();
		return anmeldung;
	}

	/**
	 * Create the dialog.
	 */
	public Anmeldung() {
		setResizable(false);
		setBounds(100, 100, 450, 300);
		setModal(true);
		getContentPane().setLayout(null);
		getContentPane().add(getLblAnmeldung());
		getContentPane().add(getLblBenutzername());
		getContentPane().add(getTextField());
		getContentPane().add(getLblPasswort());
		getContentPane().add(getPasswordField());
		getContentPane().add(getBtnAnmelden());
		getContentPane().add(getBtnRegistrieren());
	}
 
Du könntest es so machen:

Die Anwendung implementiert WindowListener oder erweitert WindowAdapter, überschreibt windowClosed(WindowEvent) und ruft JFrame#dispose() auf.

Im Dialog rufst du setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); auf und fügst die Klasse, in der die Hauptlogik läuft als WindowListener hinzu.
 
Hey, danke für die schnelle Antwort!

Leider versteh ich nicht genau wie ich die Klasse als WindowListener hinzufügen kann.
Kannst du mir das vielleicht kurz erklären?
 
Ok danke habs hinbekommen! 🙂
Falls jemand ein ähnliches Problem hat hier mal die Code schnippsel:
JDialog:
Java:
public Anmeldung() {
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
....
JFrame:
Java:
public GUIClient() {
		Anmeldung.get().addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosed(WindowEvent arg0) {
				System.exit(0);
			}
		});
 

Zurück
Oben