Swing Java Tutorial

import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.LayoutManager;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class FormLayoutTester {
  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setLayout(new FormLayout());
    frame.add(new JLabel("A"));
    frame.add(new JTextField(15));
    frame.add(new JLabel("AA"));
    frame.add(new JTextField(20));
    frame.add(new JLabel("AAAA"));
    frame.add(new JTextField(10));
    frame.add(new JLabel("AAAAAA"));
    frame.add(new JTextField(2));
    frame.add(new JLabel("AAAAAAAA"));
    frame.add(new JTextField(5));
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
  }
}
/**
 * A layout manager that lays out components along a central axis
 */
class FormLayout implements LayoutManager {
  private int left;
  private int right;
  private int height;
  private static final int GAP = 6;
  
  public Dimension preferredLayoutSize(Container parent) {
    Component[] components = parent.getComponents();
    left = 0;
    right = 0;
    height = 0;
    for (int i = 0; i < components.length; i += 2) {
      Component cleft = components[i];
      Component cright = components[i + 1];
      Dimension dleft = cleft.getPreferredSize();
      Dimension dright = cright.getPreferredSize();
      left = Math.max(left, dleft.width);
      right = Math.max(right, dright.width);
      height = height + Math.max(dleft.height, dright.height);
    }
    return new Dimension(left + GAP + right, height);
  }
  public Dimension minimumLayoutSize(Container parent) {
    return preferredLayoutSize(parent);
  }
  public void layoutContainer(Container parent) {
    preferredLayoutSize(parent); // Sets left, right
    Component[] components = parent.getComponents();
    Insets insets = parent.getInsets();
    int xcenter = insets.left + left;
    int y = insets.top;
    for (int i = 0; i < components.length; i += 2) {
      Component cleft = components[i];
      Component cright = components[i + 1];
      Dimension dleft = cleft.getPreferredSize();
      Dimension dright = cright.getPreferredSize();
      int height = Math.max(dleft.height, dright.height);
      cleft.setBounds(xcenter - dleft.width, y + (height - dleft.height) / 2,
          dleft.width, dleft.height);
      cright.setBounds(xcenter + GAP, y + (height - dright.height) / 2,
          dright.width, dright.height);
      y += height;
    }
  }
  public void addLayoutComponent(String name, Component comp) {
  }
  public void removeLayoutComponent(Component comp) {
  }
}