# JFrame Problem mit setAlwaysOnTop



## Iron Monkey (30. Mrz 2009)

Hi an alle!

Also, ich habe ein JFrame - Fenster mit setAlwaysOnTop( true ) eingebaut! Wenn in meinem Programm aber zuerst mit JOptionPane geöffnet wurde und danach mit dem JFrame-Fenster öffnen, dann habe ich ein Problem, dass ich das JOptionPane nicht schliessen kann, da erstens das JFrame-Fenster sehr stark im Vordergrund liegt und zweitens JOptionPane ist immer modal, d.h. ich kann kaum das JFrame-Fenster mit Maus an die Seite ziehen.

Zu dem untenstehenden Code möchte ich gerne erreichen, wie ich auf das Button "Test" klicken! Ich möchte genauso einbauen wie zwischen des Fensters von "Windows Task Manager" und "JOptionPane". Wie kann man das lösen? Ich denke mal, dass es überhaupt nicht möglich ist und ich muss besser ein eigenes JOptionPane bauen, oder habt ihr eine andere Idee?

Bei JOptionPane ohne Thread ist es mir klar, dass normalerweise zuerst JOptionPane geöffnet wird und nach dem OK-Drücken kommt anschliessend das nächste Fenster. Das Thread möchte ich aber nicht weglassen. 

[HIGHLIGHT="Java"]import javax.swing.*;

public class TestFrame {

	public TestFrame()
	{
		new Thread()
		{
			public void run()
			{
				SwingUtilities.invokeLater(new Runnable() {
					public void run() {
						JOptionPane.showMessageDialog( null, "Hiermit kann ich nicht schliessen!", "Test",  JOptionPane.INFORMATION_MESSAGE );
					}
				});
			}
		}.start();

		JFrame frame = new JFrame();
		frame.setAlwaysOnTop( true );
		frame.setSize( 300, 300 );
		frame.setTitle( "Test" );
		frame.add( new JButton( "Test" ) );
		frame.pack();
		frame.setVisible( true );
	}

	public static void main(String[] args) {
		new TestFrame();
	}
}[/HIGHLIGHT]

Gruß
Iron Monkey


----------



## Marco13 (5. Apr 2009)

Ich gehe mal davon aus, dass da AUCH einige Schwierigkeiten bestehen, die nichts mit Java zu tun haben. Würde es dir leichter fallen, die Frage... z.B. auf englisch zu stellen?


----------



## hdi (5. Apr 2009)

Hast du denn einen guten Grund warum das Fenster alwaysOnTop sein soll? Wenn nicht, schmeiss es raus. Das ist nun mal eine Einstellung, die fast nie Sinn macht und jeden User ankotzt.


----------

