# Modales Fenster nach Programmwechsel nicht mehr erreichbar



## mpck82 (11. Nov 2005)

Ich starte aus einem Applet ein neues modales Fenster. Dieses wird auch korrekt angezeigt. Wenn 
ich auf eine andere Anwendung wechsle und anschließend zurück zum Browser erscheint das Modale Fenster nicht mehr im Vordergrund.  Es befindet sich irgendwo im Hintergrund. Der Browser ist im Vordergrund, kann jedoch nicht angeklickt werden, da er auf das modale Fenster wartet.

Beispiel für die Implementierung:

Applet.start():


```
...
lov = new ListOfValues(new Frame(windowTitle), this, windowTitle, queryStr);
...
```

ListOfValues:


```
...
setVisible(true);
...
```

ListOfValues.actionPerformed:


```
...
setVisible(false);
...
```

Wie kann ich erkennen, das der Browser wieder aktiviert wurde bzw. wie setzte ich das Fenster in den Vordergrund? [/code]


----------



## Campino (11. Nov 2005)

mit so wenig Code werden wir kaum etwas sehen können, du musst uns schon etwas mehr zeigen. Hast du es mal mit unterschiedlichen Browsern versucht?


----------



## mischer (11. Nov 2005)

mpck82 hat gesagt.:
			
		

> ```
> ...
> lov = new ListOfValues(new Frame(windowTitle), this, windowTitle, queryStr);
> ...
> ...


----------



## mpck82 (11. Nov 2005)

Vielen Dank für deinen Tipp, jedoch woher bekomme ich den Owner für das den Dialog. Der Owner sollte das Applet bzw der Browser sein, jedoch wie kann man das abfragen?

Als Testumgebung verwendte IE 6, Moz 1.07, Moz 1.5 mit Java 5.0

Hier etwas mehr Code:


```
// Applet

public class Client extends Applet {

	public ListOfValues createLOV(String windowTitle, String queryStr)
	{	
		return new ListOfValues([b]??????[/b], this, windowTitle, queryStr);
	}
}

// LOV Klasse

public class ListOfValues extends Dialog implements ActionListener, KeyListener, AdjustmentListener, MouseListener {
...
        public ListOfValues(Frame frame, Client client, String windowTitle, String queryString) 
	{
				
		super(frame,windowTitle,true);
				
		setLayout(new BorderLayout());

		this.client = client;
		this.queryString = queryString;
		
		// Fensterposition
		Dimension d = getToolkit().getScreenSize();
		setLocation(d.width/3,d.height/3);
		this.setSize(700,500);
	}
...
}
```


----------



## mpck82 (11. Nov 2005)

Habe schon eine Lösung gefunden, nochmals Danke.


```
public ListOfValues createLOV(String windowTitle, String queryStr)
	{	
		Container c = getParent();
		
		// Suche nach dem Browserfenster/Appletviewer Fenster
		while(c != null) 
		{ 
			if (c instanceof Frame) 
				return new ListOfValues((Frame) c, this, windowTitle, queryStr);
			
		    c = c.getParent( );
		  }
		
		return null;
	}
```


----------

