AlwaysOnTop ohne Fokus, bzw. Fokus zurückgeben - geht das?

shutdown

Erfahrenes Mitglied
Hallo an alle!

Ich hätte da mal eine Frage zum Focus-System in Java, wozu ich nicht das richtige finde.

Und zwar möchte ich auf dem Bildschirm ein Warnmeldung anzeigen. Diese soll über allen anderen Fenstern stehen, so dass sie in jedem Fall zu sehen ist. Allerdings soll dabei der Fokus nicht auf diese Warnmeldung übergehen.
Wenn also jemand eine Email schreibt, dann soll er einfach weiter schreiben können, ohne dass der Fokus auf meiner Warnung liegt und die Tastenanschläge in's Leere laufen.

Kann man sowas machen? (Mein untenstehender Versuch zeigt, wie ich mir das vorstelle, nur das mit dem Focus klappt noch nicht)

Gibt es eine Möglichkeit, dass meine Warnung den Focus zurückgibt? Das Fenster mit toBack() zurückzstufen, bringt ja nichts, da es ersten das alwaysOnTop kaputt macht und zweitens die Warnung dann ganz unten liegt und überhaupt nicht mehr zu sehen ist.

Schon mal danke für die Antworten.

Hier was ich mir vorstelle:

Java:
public class PopUpWindow {
	public PopUpWindow() {
		final JDialog d = new JDialog();
		d.setFocusable(false);
		d.setAlwaysOnTop(true);
		d.setSize(200, 25);
		d.setUndecorated(true);
		JButton b = new JButton("Achtung: Da stimmt was nicht!");
		b.setBackground(Color.red);
		b.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				d.setVisible(false);
			}
		});
		d.add(b);
		d.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - d.getWidth()) / 2, 0);
		
		
		Timer t = new Timer("timer");
		TimerTask task = new TimerTask() {
			public void run() {
				d.setVisible(true);
				d.transferFocus();
			}
		};
		
		t.schedule(task, 0, 20000);
	}
	
	public static void main(String[] args) {
		new PopUpWindow();
	}
}
 
Zurück