AlignLabels.java Source code

Java tutorial

Introduction

Here is the source code for AlignLabels.java

Source

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><i>html based<br></i><font color=blue>W alignment</font>");
        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;
    }
}