summaryrefslogtreecommitdiffstats
path: root/lib/example/Preferred.java
blob: f5fc54e8e42c87205dd828a2a3092c5758d8dc76 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package example;


import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import layout.TableLayout;


public class Preferred extends JFrame {


    public Preferred() {
        super("The Power of Preferred Sizes");

        Container pane = getContentPane();

        // b - border
        // f - FILL
        // p - PREFERRED
        // vs - vertical space between labels and text fields
        // vg - vertical gap between form elements
        // hg - horizontal gap between form elements

        double b = 10;
        double f = TableLayout.FILL;
        double p = TableLayout.PREFERRED;
        double vs = 5;
        double vg = 10;
        double hg = 10;

        double size[][] =
            {{b, f, hg, p, hg, p, b},
                {b, p, vs, p, vg, p, vs, p, vg, p, vs, p, vg, p, b}};

        TableLayout layout = new TableLayout(size);
        pane.setLayout(layout);

        // Create all controls
        JLabel labelName = new JLabel("Name");
        JLabel labelAddress = new JLabel("Address");
        JLabel labelCity = new JLabel("City");
        JLabel labelState = new JLabel("State");
        JLabel labelZip = new JLabel("Zip");

        JTextField textfieldName = new JTextField(10);
        JTextField textfieldAddress = new JTextField(20);
        JTextField textfieldCity = new JTextField(10);
        JTextField textfieldState = new JTextField(2);
        JTextField textfieldZip = new JTextField(5);

        JButton buttonOk = new JButton("OK");
        JButton buttonCancel = new JButton("Cancel");
        JPanel panelButton = new JPanel();
        panelButton.add(buttonOk);
        panelButton.add(buttonCancel);

        // Add all controls
        pane.add(labelName, "1,  1, 5, 1");
        pane.add(textfieldName, "1,  3, 5, 3");
        pane.add(labelAddress, "1,  5, 5, 5");
        pane.add(textfieldAddress, "1,  7, 5, 7");
        pane.add(labelCity, "1,  9");
        pane.add(textfieldCity, "1, 11");
        pane.add(labelState, "3,  9");
        pane.add(textfieldState, "3, 11");
        pane.add(labelZip, "5,  9");
        pane.add(textfieldZip, "5, 11");
        pane.add(panelButton, "1, 13, 5, 13");

        allowClosing();
        pack();
        setResizable(false);
        show();
    }

    public static void main(String args[]) {
        new Preferred();
    }

    public void allowClosing() {
        addWindowListener
            (new WindowAdapter() {
                 public void windowClosing(WindowEvent e) {
                     System.exit(0);
                 }
             }
            );
    }


}