public class OrderDialog extends JDialog
class ButtonHandler implements ActionListener
class DialogPanel extends JPanel
1:
2: import java.awt.*;
3: import java.awt.event.*;
4: import javax.swing.*;
5:
6: public class OrderDialog extends JDialog {
7:
8: JPanel bottom;
9: JButton okButton, cancelButton;
10: DialogPanel dialogPanel;
11:
12: public OrderDialog(JFrame owner) {
13: super(owner, true);
14: setTitle("Order");
15: okButton = new JButton("Ok");
16: cancelButton = new JButton("Cancel");
17: ButtonHandler bhandler = new ButtonHandler();
18: okButton.addActionListener(bhandler);
19: cancelButton.addActionListener(bhandler);
20: bottom = new JPanel();
21: bottom.add(okButton);
22: bottom.add(cancelButton);
23: bottom.setBorder(BorderFactory.createEtchedBorder());
24: dialogPanel = new DialogPanel();
25: getContentPane().setLayout(new BorderLayout());
26: getContentPane().add(bottom, BorderLayout.SOUTH);
27: getContentPane().add(dialogPanel, BorderLayout.CENTER);
28: pack();
29: }
30:
31: class ButtonHandler implements ActionListener {
32: public void actionPerformed(ActionEvent evt) {
33: JButton button = (JButton) evt.getSource();
34: String label = button.getText();
35: if ("Ok".equals(label)) {
36: System.out.println("An order is received:");
37: System.out.println("\tName: " + dialogPanel.nameField.getText());
38: System.out.println("\tAddress: " + dialogPanel.addressField.getText());
39: System.out.println("\tCity: " + dialogPanel.cityField.getText());
40: System.out.println("\tState: " + dialogPanel.stateField.getText());
41: System.out.println("\tZIP: " + dialogPanel.zipField.getText());
42: System.out.println("\tE-Mail: " + dialogPanel.emailField.getText());
43: System.out.print("\tCredit card: ");
44: if (dialogPanel.visaBox.isSelected()) {
45: System.out.println("Visa");
46: } else if (dialogPanel.mcBox.isSelected()) {
47: System.out.println("MasterCard");
48: } else if (dialogPanel.discoverBox.isSelected()) {
49: System.out.println("Discover");
50: }
51: }
52: dialogPanel.reset();
53: setVisible(false);
54: }
55: }
56:
57: }
58:
59: class DialogPanel extends JPanel {
60:
61: JLabel nameLabel;
62: JTextField nameField;
63: JLabel addressLabel;
64: JTextField addressField;
65: JLabel cityLabel;
66: JTextField cityField;
67: JLabel stateLabel;
68: JTextField stateField;
69: JLabel zipLabel;
70: JTextField zipField;
71: JLabel emailLabel;
72: JTextField emailField;
73: JCheckBox visaBox, mcBox, discoverBox;
74: JPanel creditCard;
75: ButtonGroup group;
76:
77: DialogPanel() {
78: nameLabel = new JLabel("Name");
79: nameField = new JTextField();
80: addressLabel = new JLabel("Address");
81: addressField = new JTextField();
82: cityLabel = new JLabel("City");
83: cityField = new JTextField();
84: stateLabel = new JLabel("State");
85: stateField = new JTextField();
86: zipLabel = new JLabel("ZIP");
87: zipField = new JTextField();
88: emailLabel = new JLabel("E-Mail");
89: emailField = new JTextField();
90:
91: creditCard = new JPanel();
92: visaBox = new JCheckBox("Visa", true);
93: mcBox = new JCheckBox("MasterCard");
94: discoverBox = new JCheckBox("Discover");
95: creditCard.add(visaBox);
96: creditCard.add(mcBox);
97: creditCard.add(discoverBox);
98: creditCard.setBorder(BorderFactory.createTitledBorder("Credit Card"));
99: group = new ButtonGroup();
100: group.add(visaBox);
101: group.add(mcBox);
102: group.add(discoverBox);
103:
104: add(nameLabel);
105: add(nameField);
106: add(addressLabel);
107: add(addressField);
108: add(cityLabel);
109: add(cityField);
110: add(stateLabel);
111: add(stateField);
112: add(zipLabel);
113: add(zipField);
114: add(emailLabel);
115: add(emailField);
116: add(creditCard);
117: }
118:
119: public Dimension getPreferredSize() {
120: return new Dimension(350, 200);
121: }
122:
123: public Dimension getMinimumSize() {
124: return new Dimension(350, 200);
125: }
126:
127: public void doLayout() {
128: nameLabel.setBounds(10, 10, 60, 30);
129: nameField.setBounds(70, 15, 270, 20);
130: addressLabel.setBounds(10, 40, 60, 30);
131: addressField.setBounds(70, 45, 270, 20);
132: cityLabel.setBounds(10, 70, 60, 30);
133: cityField.setBounds(70, 75, 100, 20);
134: stateLabel.setBounds(180, 70, 40, 30);
135: stateField.setBounds(220, 75, 30, 20);
136: zipLabel.setBounds(260, 70, 30, 30);
137: zipField.setBounds(290, 75, 50, 20);
138: emailLabel.setBounds(10, 100, 60, 30);
139: emailField.setBounds(70, 105, 270, 20);
140: creditCard.setBounds(10, 140, 330, 50);
141: }
142:
143: public void reset() {
144: nameField.setText("");
145: addressField.setText("");
146: cityField.setText("");
147: stateField.setText("");
148: zipField.setText("");
149: emailField.setText("");
150: visaBox.setSelected(true);
151: }
152:
153: }