Elemente im JPanel anordnen

Hallo.

Ich habe in einem JPanel eine TextArea und einen Button. Dummerweise stehen die im Panel nebeneinander, obwohl sie untereinander angeordnet sein sollten, also erst die TextArea und darunter der Bestätigen-Button.
Hab schon ein bißchen mit Layouts für das JPanel rumgespielt, vor allem FlowLayout, aber da tut sich nix. Und bei setLocation(Point) auf die beiden Elemente angewandt tut sich ebensowenig. Kann jemand helfen? Hier mein Quellcode (ohne setLocation und FlowLayout):

jPanel2 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();

jTextArea1= new JTextArea (nachricht, 3, 55);
jTextArea1.setLineWrap(true);
jTextArea1.setWrapStyleWord(true);
jTextArea1.setBackground(new Color(212,208,200));

jPanel2.add(jTextArea1);
jPanel2.add(jButton1);

Hallo Victor,

bei wenigen Komponenten tut das BorderLayout gute Dienste:

jPanel2 = new javax.swing.JPanel();
**jPanel2.setLayout(new BorderLayout());**
jButton1 = new javax.swing.JButton();

jTextArea1= new JTextArea (nachricht, 3, 55);
jTextArea1.setLineWrap(true);
jTextArea1.setWrapStyleWord(true);
jTextArea1.setBackground(new Color(212,208,200));

jPanel2.add(jTextArea1, **BorderLayout.NORTH** );
jPanel2.add(jButton1, **BorderLayout.SOUTH** );

gruß
Heavy

BorderLayout is blöd

bei wenigen Komponenten tut das BorderLayout gute Dienste:

jPanel2.add(jTextArea1, BorderLayout.NORTH );
jPanel2.add(jButton1, BorderLayout.SOUTH );

Dannn zieht der mir aber den Button über die ganze Länge des Fensters. Ich will einfach oben den Text und darunter einen stinknormalen Button. Nich zu fassen, dass ich da so verwzeifel… also, vielleicht kann noch jemand helfen.

Hallo,

für eine optisch angenehme GUI sind Layouts nach meiner Meinung absolut nicht zu gebrauchen - probier folgendes:

JPanel panel = new JPanel();
panel.setSize(400,300);
panel.setLayout(null) //keinen LayoutManager verwenden

JButton button1 = new JButton("Hallo");
button1.setBounds(20, 20, 60, 25); // x,y, Breite, Hoehe
JButton button2 = new JButton("Du Da !");
button2.setBounds(20, 60, 60, 25);

panel.add(button1);
panel.add(button2);

Ist mit mehr Aufwand verbunden, jedoch um einiges flexibler und damit aesthetischer.
Sag bescheid, ob’s das ist, was Du Dir vorgestellt hast …

Viele Grüße,
Lars

P.S: Um Objekte einfach untereinander anzuordnen kannst Du auch BoxLayout benutzen