# JDialog positionieren



## Emilia_Titanrik (14. Nov 2005)

Hallo,
ich programmiere gerade ein Spiel mit einer beweglichen Spielfläche. Wie kann ich Pop-Up-Fenster an die Spielfläche binden? Die Pop-Ups sollen da erscheinen wo sich das Hauptfenster auch befindet. 
Würde mich über Hilfe freuen. Danke.


----------



## L-ectron-X (14. Nov 2005)

An dein Popup-Fenster übergibst du eine Referenz auf deine Spielfläche.
Im Konstruktor deines Popup-Fensters übergibst du diese Referenz dann bspw. so:

```
public MeinPopupFenster(String title, GameArea owner, boolean modal) {
  super(owner, title, modal);
  this.setLocationRelativeTo(owner)
  ...
...
}
```

In deiner Spielfläche rufst du dein PopupFenster dann so auf:

```
public class GameArea extends ... {
  ...

  MeinPopupFenster popup = new MeinPopupFenster("Blubb", this, true);
```

Die Spielfläche muss dafür ein Frame-Typ sein, weil ein (J)Dialog eine solche Referenz erwartet.


----------



## Emilia_Titanrik (14. Nov 2005)

Vielen Dank. Das hat mir schon sehr geholfen. Kann ich das auch irgendwie noch genauer positionieren?
Ein süßes Baby.


----------



## L-ectron-X (14. Nov 2005)

Danke.  

In der Klasse java.awt.Component gibts die Methode
_public void setLocation(int x, int y)_

die du mit den genauen Positionsargumenten aufrufen kannst.


----------



## Emilia_Titanrik (14. Nov 2005)

Ich dachte dann an eine Position die das Fenster immernoch relativ zu dem Hauptfenster positioniert...so dass es an das Fenster gebunden ist, wenn ich x=0 und y=0 eingebe. Oh, ich hoffe du verstehst was ich sagen möchte.


----------



## Bastian (14. Nov 2005)

Emilia_Titanrik hat gesagt.:
			
		

> Ich dachte dann an eine Position die das Fenster immernoch relativ zu dem Hauptfenster positioniert...so dass es an das Fenster gebunden ist, wenn ich x=0 und y=0 eingebe. Oh, ich hoffe du verstehst was ich sagen möchte.



lösung hier: http://www.java-forum.org/de/viewtopic.php?t=24493&highlight=


----------



## L-ectron-X (14. Nov 2005)

Willst du, dass sich dein Popup-Fenster in der linken oberen Ecke über deiner Spielfläche öffnet?
Dann ermittelst du einfach die Koordinaten deiner Spielfläche und übergibst sie an die setLocation()-Methode deines Popup-Fensters.
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Component.html#getLocationOnScreen()


----------



## Emilia_Titanrik (14. Nov 2005)

Antworten waren echt super. War so sehr viel effektiver als die stundenlangen Sitzungen vor den Büchern. Danke nochmal. Komme bestimmt mal wieder


----------

