Component Alignment
/*
Definitive Guide to Swing for Java 2, Second Edition
By John Zukowski
ISBN: 1-893115-78-X
Publisher: APress
*/
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Insets;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class YAxisDiffAlign {
private static Container makeIt(String title, boolean more) {
JPanel container = new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
Insets insets = getInsets();
int width = getWidth() - insets.left - insets.right;
int halfWidth = width / 2 + insets.left;
int height = getHeight();
int halfHeight = height / 2 + insets.top;
g.drawLine(halfWidth, 0, halfWidth, height);
}
};
container.setBorder(BorderFactory.createTitledBorder(title));
BoxLayout layout = new BoxLayout(container, BoxLayout.Y_AXIS);
container.setLayout(layout);
JButton button;
button = new JButton("0.0");
button.setOpaque(false);
button.setAlignmentX(Component.LEFT_ALIGNMENT);
container.add(button);
if (more) {
button = new JButton(".25");
button.setOpaque(false);
button.setAlignmentX(0.25f);
container.add(button);
button = new JButton(".5");
button.setOpaque(false);
button.setAlignmentX(Component.CENTER_ALIGNMENT);
container.add(button);
button = new JButton(".75");
button.setOpaque(false);
button.setAlignmentX(0.75f);
container.add(button);
}
button = new JButton("1.0");
button.setOpaque(false);
button.setAlignmentX(Component.RIGHT_ALIGNMENT);
container.add(button);
return container;
}
public static void main(String args[]) {
JFrame frame = new JFrame("Alignment Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container panel1 = makeIt("Mixed", false);
Container panel2 = makeIt("Mixed", true);
Container contentPane = frame.getContentPane();
contentPane.setLayout(new GridLayout(1, 2));
contentPane.add(panel1);
contentPane.add(panel2);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
Related examples in the same category