# Buttons positionieren



## Stockey (26. Feb 2004)

Hallo,

ich schreibe z.Zeit eine Anwendung in Java 2. Nun sollt ich eine größere Anzahl Buttons und andere Objekte im Fenster positionieren.
Mit den Layout Managern wie GridLayout, BorderLayout, GridbagLayout und CardLayout kann ich nichts anfangen, da
die Buttons individuell positioniert werden müssen. In meinem Buch steht daß man wenn man

"setLayout(null)" setzt, die Buttons mit setBounds(x,y,..) individuell positionieren kann. Bei mir funktioniert das aber nicht. Kann mir jemand helfen?

Gruß

Stockey


----------



## Beni (26. Feb 2004)

Dein Code könnte ganz nützlich sein... (zur Fehleranalyse)

Ich weiss nicht was in deinem Buch steht, aber als kleines Beispiel könnte das so aussehen:

```
public class MainFrame extends JFrame{
  public MainFrame(){
    Container content = getContentPane();
    content.setLayout( null );

    JButton buttonA = ... // woher er auch kommen mag
    JButton buttonB = ... // auch dieser Button kommt von irgendwo

    content.add( buttonA );
    content.add( buttonB );

    // Position & Grösse der Buttons
    buttonA.setBounds( 10, 10, 60, 25 );
    buttonB.setBounds( 10, 40, 60, 25 );

    setBounds( 20, 20, 70, 100 );  // Position & Grösse des Frames
  }
}
```

mfg Beni


----------



## Stockey (27. Feb 2004)

Hi,
besten Dank für Deine schnelle Reaktion. Dein Vorschlag mit den  swing klassen hat sofort funktioniert. Ich verwendete bei meinem Programm allerdings nur das normale GUI im awt, da ich irgendwo gelesen habe daß die swing klassen nicht sehr schnell sein sollen. Kannst du das bestätigen? Könntest du mir der Vollständigkeit halber auch noch einen Vorschlag desselben Problems unter dem awt (GUI) machen?   

Gruß

Stockey


----------



## Beni (27. Feb 2004)

Hmm, AWT kenne ich nicht so gut, aber das müsste dann etwa so aussehen:
	
	
	
	





```
public class MainFrame extends Frame{
  public MainFrame(){
    setLayout( null );

    Button buttonA = ... // woher er auch kommen mag
    Button buttonB = ... // auch dieser Button kommt von irgendwo

    add( buttonA );
    add( buttonB );

    // Position & Grösse der Buttons
    buttonA.setBounds( 10, 10, 60, 25 );
    buttonB.setBounds( 10, 40, 60, 25 );

    setBounds( 20, 20, 70, 100 );  // Position & Grösse des Frames
  }
}
```

Und zu deiner anderen Frage:
Ja, Swing ist lansgsamer. Mit dem neuen Java 1.5 wird es allerdings erheblich schneller (kommt aber immer noch nicht an AWT heran).
Der Vorteil von Swing ist seine Vielfalt, Swing bietet einige Komponenten an, welche dem AWT unbekannt sind. (JTree, JTable, ...)


----------

