Source of OrderDialog.java


  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: }