Source of OrderDialog.java


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