# JLabel verschieben



## BoneCracker (14. Sep 2004)

Hi,
da mir langweilig war, habe ich gestern und heute ein "2D Netzwerk Shooter" geschrieben. Jedoch bin ich jetzt auf ein Problem gestoßen.

Ich habe ein neues JFrame geöffnet und das Layout auf null gesetzt, so dass man die Koordinaten Absolut angeben kann. Dass es beim größer und kleiner ziehen nicht alles verschiebt, habe ich das deaktiviert.

Dann habe ich ein neues JLabel erzeugt. Da das am Anfang nur 0 Pixel hoch un breit war (Ist das normal?), hab ich es mit setBounds an eine bestimmte Position gesetzt.


```
private static final int LINKS  = 39;
	private static final int RECHTS = 37;
	private static final int OBEN   = 38;
	private static final int UNTEN  = 40;
	
	private static final String UFO_R = "bin\\de\\bone\\graphics\\ufo_r.png";
	private static final String UFO_L = "bin\\de\\bone\\graphics\\ufo_l.png";
	
	// 0 == Links
	// 1 == Rechts
	// 2 == Oben
	// 3 == Unten
	private boolean active[] = new boolean[4];
	
	private JFrame  m_oWin; 
	private String  m_sPlayerName[]   = new String[1];
	private Point   m_sPlayerPoints[] = new Point[1];
	private boolean m_bReady          = false;
	private JLabel  m_oUfoP1;
	private Image   m_oUfoPic1;
```


```
public void setWindow(JFrame frame) {
		this.m_oWin = frame;
		frame.addKeyListener(this);
		frame.setSize(this.width(), this.height());
		File file1 = new File(CustomMap.UFO_R);
		File file2 = new File(CustomMap.UFO_L);
		if (file1.isFile() == false || file2.isFile() == false) {
			System.err.println("Eine Grafigdatei konnte nicht gefunden werden.");
		}
		this.m_oUfoPic1 = new ImageIcon(CustomMap.UFO_R).getImage();
		this.m_oUfoP1   = new JLabel(new ImageIcon(this.m_oUfoPic1));
		this.m_oUfoP1.setBounds(0, 0, 50, 40);
		this.m_oUfoP1.setLocation(9000000, 900000);
		frame.getContentPane().add(this.m_oUfoP1);
	}
```

Der Teil ist leider noch recht chaotisch, da ich hier ziehmlich lange immer hin und her probiert habe... Trotz dem dem setLocation sitzt er immernoch nur ~40-50 pixel jeweil (nach rechts und unten) von dem oberen linken Punkt des Fensters Fest und kann nicht dazu überredet werden an eine andere Stelle zu kommen.

ich habe es auch schon mit frame.repaint() versucht, jedoch ohne sichtbaren Effekt. Bei frame.pack() verkleiner sich das Fenster so weit, dass nur noch die Titelleiste zu sehen ist, jedoch kein Fensterinhalt.

Könnt ihr mir bei dem Problem helfen?

Danke schonmal im vorraus für die Antworten,
Mfg


----------



## Sky (14. Sep 2004)

Den folgenden Code verwende ich in meiner Applikation (Liegt auch auf einem JFrame) und damit kann ich das JLabel ohne Probleme positionieren:


```
myLabel = new JLabel();
myLabel.setSize( iWidth, iHeight );
myLabel.setLocation( iXPos, iYPos);
this.getContentPane().add( myLabel );
```


----------



## BoneCracker (14. Sep 2004)

Hi,
danke für die Antwort. Das hat auch Funktioniert. Jedoch, als ich anstatt 

```
JFrame mylabel = new JFrame();
```

das auf die Variable 

```
private JLabel  m_oUfoP1
```
lege, kann ich das JFrame nichtmehr bewegen...

Warum?

Mfg


----------

