Swing JFC Java

import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class AlignLabels extends JPanel {
  JLabel[] labels = new JLabel[9];
  public AlignLabels() {
    JLabel label;
    setLayout(new GridLayout(3, 3));
    label = createLabel("NW alignment");
    setNWalignment(label);
    label.setEnabled(false);
    labels[0] = label;
    label = createLabel("N alignment");
    setNalignment(label);
    labels[1] = label;
    label = createLabel("NE alignment");
    setNEalignment(label);
    labels[2] = label;
    label = createLabel("W alignment");
    label.setText("html based
W alignment");
    setWalignment(label);
    labels[3] = label;
    label = createLabel("C alignment");
    setCalignment(label);
    label.setEnabled(false);
    labels[4] = label;
    label = createLabel("E alignment");
    setEalignment(label);
    labels[5] = label;
    label = createLabel("SW alignment");
    setSWalignment(label);
    labels[6] = label;
    label = createLabel("S alignment");
    setSalignment(label);
    labels[7] = label;
    label = createLabel("SE alignment");
    setSEalignment(label);
    label.setEnabled(false);
    labels[8] = label;
  }
  public static void main(String[] a) {
    JFrame mainFrame = new JFrame();
    mainFrame.getContentPane().add(new AlignLabels());
    
    mainFrame.setSize(500,500);
    mainFrame.setVisible(true);
  }
  JLabel[] getLabels() {
    return labels;
  }
  JLabel createLabel(String text) {
    String separator = System.getProperty("line.separator");
    JLabel label = new JLabel(text + separator + "multiline" + separator
        + "label");
    label.setToolTipText(text + "\n\ndoubled space\n\ntooltip");
    label.setBorder(BorderFactory.createEtchedBorder());
    this.add(label);
    label.setPreferredSize(new Dimension(125, 125));
    return label;
  }
  void setNWalignment(JLabel b) {
    b.setHorizontalAlignment(JLabel.LEFT);
    b.setVerticalAlignment(JLabel.TOP);
  }
  void setNalignment(JLabel b) {
    b.setHorizontalAlignment(JLabel.CENTER);
    b.setVerticalAlignment(JLabel.TOP);
  }
  void setNEalignment(JLabel b) {
    b.setHorizontalAlignment(JLabel.RIGHT);
    b.setVerticalAlignment(JLabel.TOP);
  }
  void setWalignment(JLabel b) {
    b.setHorizontalAlignment(JLabel.LEFT);
    b.setVerticalAlignment(JLabel.CENTER);
  }
  void setCalignment(JLabel b) {
    b.setHorizontalAlignment(JLabel.CENTER);
    b.setVerticalAlignment(JLabel.CENTER);
  }
  void setEalignment(JLabel b) {
    b.setHorizontalAlignment(JLabel.RIGHT);
    b.setVerticalAlignment(JLabel.CENTER);
  }
  void setSWalignment(JLabel b) {
    b.setHorizontalAlignment(JLabel.LEFT);
    b.setVerticalAlignment(JLabel.BOTTOM);
  }
  void setSalignment(JLabel b) {
    b.setHorizontalAlignment(JLabel.CENTER);
    b.setVerticalAlignment(JLabel.BOTTOM);
  }
  void setSEalignment(JLabel b) {
    b.setHorizontalAlignment(JLabel.RIGHT);
    b.setVerticalAlignment(JLabel.BOTTOM);
  }
}
class ColoredSquare implements Icon {
  Color color;
  public ColoredSquare(Color color) {
    this.color = color;
  }
  public void paintIcon(Component c, Graphics g, int x, int y) {
    Color oldColor = g.getColor();
    g.setColor(color);
    g.fill3DRect(x, y, getIconWidth(), getIconHeight(), true);
    g.setColor(oldColor);
  }
  public int getIconWidth() {
    return 12;
  }
  public int getIconHeight() {
    return 12;
  }
}