# Buttons verschieben mit Swing



## Skarzan (3. Jun 2008)

Hallo, liebes Java Forum.
Ich bin mit Java noch nicht allzu sehr vertraut, und erst recht nicht wenn es darum geht eine GUI zu erstellen... das nur mal vorneweg  
so, nun aber zu meiner frage: ich möchte einen Titelscreen erstellen, und dazu Buttons in einem Frame erzeugen.
Mein Problem ist hierbei jetzt, dass ich Vier Buttons ins ContentPane einbinde und diese auch schon mit den Methoden setSize und setLocation bearbeitet habe, aber der letzte Button den ich einbinde sich immer über das gesamte Frame erstreckt...

Hier mal ein kleiner auszug des Programms:


```
Spiel = new JButton("Spiel");
			Spiel.setSize(200,200);
			Spiel.setLocation(30,30);
			
			Deckeditor = new JButton("Deckeditor");
			Deckeditor.setSize(200,200);
			Deckeditor.setLocation(700,700);
			
			Beenden = new JButton("Beenden");
			Beenden.setSize(200,200);
			Beenden.setLocation(100, 700);

			
			ContentPane = (JPanel)Titel.getContentPane();
			//ContentPane.setLayout(new GridLayout(0,2));
			ContentPane.add(Schriftzug);
			ContentPane.add(Spiel);
			ContentPane.add(Deckeditor);
			ContentPane.add(Beenden);
```

oder kann es daran, liegen das ich einen bestimmten Layout Manager benutzen muss? :bahnhof: 

Hoffe, mir kann jemand bei meinem Problem helfen, Danke


----------



## Illuvatar (3. Jun 2008)

Solange du einen LayoutManager verwendest, machen die setSize und setLocation Methoden überhaupt nichts.
Mach

```
ContentPane.setLayout(null);
```
wenn du das Layout so "von Hand" machen willst. Zu empfehlen ist das aber eigentlich nicht, da das Fenster dann icht mehr auf Größenänderungen etc. dynamisch reagieren kann.
Um dir zu einem LayoutManager raten zu können, müsste man aber erstmal wissen, wie das Layout aussehen soll 

PS: Variablennamen schreibt man üblicherweise klein


----------



## Skarzan (3. Jun 2008)

Danke erstmal für die schnelle Antwort, jetzt geht es...

Der Bildschirm ist sowieso inmmer im FullScreen, deshalb wird dieser nicht verändert...
Dazu noch eine kleine Frage hinterher...
Wie kann ich die Framegröße auf Fullscreen setzten und diese danach "festmachen" so dass sie nicht mehr änderbar ist??


----------



## The_S (3. Jun 2008)

wenn du über die GraphicsDevice auf Fullscreen setzt, sollte sich ohnehin nichts mehr in der Hinsicht ändern lassen ???:L .

Es geht nicht nur ums vergrößen/verkleinern (wegen dem Layout). Wenn du ein anderes Betriebssystem oder eine andere Schriftgröße oder was weiß ich was anders eignestellt hast, kanns dir dein komplettes Layout zerhauen.


----------



## Skarzan (6. Jun 2008)

Mach das Ganze jetzt über errechnete Werte, so müsste das auch funktionieren,
jetzt hab ich aber noch ne Frage, weil ich keinen extra Thread aufmachen wollte.

Ich möchte in meinem Frame ein bestimmtes Bild anzeigen lassen, welches sich über das ganze Frame erstreckt, weiß aber leider nicht wie, habs schon mit der Methode setBackground versucht aber klappt irgendwie nich -.-

Außeredem wäre es in Verbindung mit dieser Frage gut zu erfahren wie man Bilder auch bei Labels und Buttons einstellen kann...

Hoffe das euch meine Nooby Fragen nicht stören^^


----------



## The_S (11. Jun 2008)

Bei Labels/Buttons kannst du ein Icon setzen. Bei anderen Componenten musst du die paint(Component) Methode überschreiben und dort das Bild zeichnen.

Wenn etwas nichts mehr mit dem selben Thema zu tun hat, kannst du auch gerne einen neuen Thread aufmachen, sonst wirds schnell unübersichtlich  .


----------

