Swing JFrame blockieren während anderes JFrame offen ist

thefake

Mitglied
Hallo,

ich hab 2 JFrame Objekte, ein Main und ein Popup. Wenn man im Main JFrame auf einen Button klickt wird eine SwingAction gestartet:

Java:
private class AddAction extends AbstractAction {
		 JFrame window;
		
		public AddFeedAction(JFrame window) {
			super("Add Button");
			this.window = window;
		}
		public void actionPerformed(ActionEvent e) {
			PopupFrame addFrame = new PopupFrame(this.window);
			addFrame.setVisible(true);
		}
	}

das Popup implementiert zusätzlich das WindowListener Interface, indem ich in der windowClosing Methode nur das Popup per dispose() beende, da mit sonst immer beide Fenster geschlossen wurden.

Java:
public void windowClosing(WindowEvent e) {
		this.dispose();
		
	}

Jetzt würde ich gerne folgendes Verhalten erreichen:
Solange das Popup sichtbar ist soll das MainFrame keinen Fokus erhalten können. Wie kann ich das errichen?
setEnabled(false) in der SwingAction hat zwar einen entsprechenden effekt, aber ein setEnabeld(true) im Popup aktiviert mir mein MainFrame nicht mehr, minimiert es in die taskleiste und lässt mich dann keine Componente mehr anklicken.

Thx in advance
 
für einen JFrame weiß ich garnicht, ob so ein Verhalten möglich ist.

Für dein "PopUp" ist eigentlich ein JDialog geeignet, da gibt es auch die Methode
Code:
setModal(boolean b)
, womit du imho dein gewünschtes Verhalten erreichen kannst.
 

Zurück
Oben