|
C:\proj\zoneLayout\examples\com\atticlabs\zonelayout\swing\examples\ZoneLayoutComparison.java
|
1 package com.atticlabs.zonelayout.swing.examples;
2
3 import com.atticlabs.zonelayout.swing.ZoneLayout;
4 import com.atticlabs.zonelayout.swing.ZoneLayoutFactory;
5 import com.jgoodies.forms.factories.ButtonBarFactory;
6
7 import javax.swing.JPanel;
8 import javax.swing.JLabel;
9 import javax.swing.JTextField;
10 import javax.swing.JComboBox;
11 import javax.swing.BorderFactory;
12 import javax.swing.JButton;
13 import javax.swing.JList;
14 import javax.swing.JFrame;
15 import javax.swing.SwingUtilities;
16 import java.awt.BorderLayout;
17
18 public class ZoneLayoutComparison {
19 public static final Object[] values = new Object[] {
20 "Item 1", "Item 2", "Item 3", "Item 4", "Item 5"
21 } ;
22
23 public JPanel buildPanel() {
24 ZoneLayout layout = ZoneLayoutFactory.newZoneLayout();
25 layout.addRow("a-~a");
26 layout.addRow("b+*b");
27 layout.addRow("6...");
28 layout.addRow("c>.c");
29
30 ZoneLayout aLayout = ZoneLayoutFactory.newZoneLayout();
31 aLayout.addRow("a>a2b-~b3c>c2d-~d", "valueRow");
32 aLayout.addRow("6................", "valueRow");
33 aLayout.addRow("e>e2f......-~...f");
34
35 ZoneLayout bLayout = ZoneLayoutFactory.newZoneLayout();
36 bLayout.addRow("a>a2b-~b2c-c");
37 bLayout.addRow("...........6");
38 bLayout.addRow("g........d-d");
39 bLayout.addRow("...........6");
40 bLayout.addRow("...+*....e-e");
41 bLayout.addRow("...........6");
42 bLayout.addRow(".........f-f");
43 bLayout.addRow(".......g...!");
44
45 JPanel namePanel = new JPanel(aLayout);
46 aLayout.insertTemplate("valueRow");
47 namePanel.add(new JLabel("First Name:"), "a");
48 namePanel.add(new JTextField(15), "b");
49 namePanel.add(new JLabel("Last Name:"), "c");
50 namePanel.add(new JTextField(15), "d");
51 System.out.println(new JTextField(15).getMinimumSize());
52 aLayout.insertTemplate("valueRow");
53 namePanel.add(new JLabel("Title:"), "a");
54 namePanel.add(new JTextField(15), "b");
55 namePanel.add(new JLabel("Nickname:"), "c");
56 namePanel.add(new JTextField(15), "d");
57 namePanel.add(new JLabel("Display Format:"), "e");
58 namePanel.add(new JComboBox(values), "f");
59 namePanel.setBorder(BorderFactory.createCompoundBorder(
60 BorderFactory.createTitledBorder("Name"),
61 BorderFactory.createEmptyBorder(5, 5, 5, 5)));
62
63 JPanel emailPanel = new JPanel(bLayout);
64 emailPanel.add(new JLabel("Email Address:"), "a");
65 emailPanel.add(new JTextField(15), "b");
66 emailPanel.add(new JButton("Add"), "c");
67 emailPanel.add(new JButton("Edit"), "d");
68 emailPanel.add(new JButton("Remove"), "e");
69 emailPanel.add(new JButton("Advanced"), "f");
70 emailPanel.add(new JList(values), "g");
71
72 emailPanel.setBorder(BorderFactory.createCompoundBorder(
73 BorderFactory.createTitledBorder("E-mail"),
74 BorderFactory.createEmptyBorder(5, 5, 5, 5)));
75
76
77 JPanel p = new JPanel(layout);
78
79 p.add(namePanel, "a");
80 p.add(emailPanel, "b");
81 p.add(ButtonBarFactory.buildOKCancelBar(
82 new JButton("OK"),
83 new JButton("Cancel")), "c");
84
85 p.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
86 return p;
87 }
88
89 public static void main(String[] args) {
90 final JFrame frame = new JFrame("ZoneLayout");
91
92 frame.getContentPane().add(
93 new ZoneLayoutComparison().buildPanel(), BorderLayout.CENTER);
94
95 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
96
97 SwingUtilities.invokeLater(new Runnable() {
98 public void run() {
99 frame.pack();
100 frame.setVisible(true);
101 }
102 });
103 }
104 }
105