# Java 1.6 SpringLayout



## RomyM88 (7. Apr 2009)

Hallo zusammen

Ich habe zwei JTextField und zwei JLabel.
Diese würde ich jetzt gerne wie in einem Formular darstellen --> Links das Label rechts davon das TextField auf der nächste Zeile dann wieder links das Label und rechts das TextField.
Ich habe gehört, dass sich das SpringLayout gut dafür eigenen würde. 

Kennt sich jemdand damit aus und könnte mir sagen, wie ich das wie oben beschrieben anordnen könnte? 


Danke schon im Voraus und einen schönen Tag


----------



## Ebenius (7. Apr 2009)

Das ist eigentlich im Sun Java™ Tutorial: How to Use SpringLayout super beschrieben, oder?

Ich verschieb das Thema mal...

Ebenius


----------



## byte (7. Apr 2009)

SpringLayout würde ich nicht benutzen:


> The SpringLayout class was added in JDK version 1.4 to support layout in GUI builders. SpringLayout is a very flexible layout manager that can emulate many of the features of other layout managers. *SpringLayout is, however, very low-level and as such you really should only use it with a GUI builder, rather than attempting to code a spring layout manager by hand.*



Für Formulare finde ich TableLayout sehr gut geeignet!


----------



## L-ectron-X (7. Apr 2009)

Kommt darauf an, wie es aussehen soll.
Man bekommt das auch ohne externe LayoutManager hin, auch wenn das GridBagLayout nicht unbedingt trivial ist.

Hier mal ein Beispiel mit GridBagLayout:
[HIGHLIGHT="Java"]import java.awt.*;
import javax.swing.*;

public class FormularDemo extends JFrame {
   private JTextField tf1, tf2;

   public FormularDemo(String title) {
      super(title);
      setSize(400, 300);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      JPanel panel = new JPanel(new GridBagLayout());
      panel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
      GridBagConstraints gbc = new GridBagConstraints();

      tf1 = new JTextField();
      tf2 = new JTextField();

      gbc.anchor = GridBagConstraints.WEST;
      panel.add(new JLabel("Name:"), gbc);

      gbc.gridx = 1;
      gbc.weightx = 1.0;
      gbc.fill = GridBagConstraints.HORIZONTAL;
      gbc.insets = new Insets(0, 0, 5, 0);
      panel.add(tf1, gbc);

      gbc.gridx = 0;
      gbc.gridy = 1;
      gbc.weightx = 0.0;
      gbc.fill = GridBagConstraints.NONE;
      gbc.insets = new Insets(0, 0, 0, 10);
      panel.add(new JLabel("Vorname:"), gbc);

      gbc.gridx = 1;
      gbc.weightx = 1.0;
      gbc.fill = GridBagConstraints.HORIZONTAL;
      gbc.insets = new Insets(0, 0, 0, 0);
      panel.add(tf2, gbc);

      add(panel);
   }

   public static void main(String[] args) {
      new FormularDemo("FormularDemo").setVisible(true);
   }
}[/HIGHLIGHT]


----------



## Ebenius (8. Apr 2009)

Nachtrag: Das ist doch der perfekte Anwendungsfall für das in Java 6 hinzugekommene GroupLayout. Oder?

Ebenius


----------

