// TEST CODES TO PROCESS ORDER DETAILS /* To process the order details, the quantity ordered is entered then a toy id is selected. The toy price automatically appears and if the order number is present, the amount is computed and displayed. This may be repeated a number of times with the running total being computed. When the accept button is pressed, the total bill is displayed. The cancel button clears the fields. */ /* To test the code, compile this file using the command appletviewer OrderDetail.java. Create a html file with the applet tag specifying the code as "OrderDetail.class" and height and width as 300 and 500 respectively. Save the html file as OrderDetail.html and run it using the command appletviewer OrderDetail.html. */ import javax.swing.*; import java.awt.*; import java.awt.event.*; class Order extends JApplet { final JLabel labOrderNo; protected JTextField txtOrderNo; JPanel panel; GridBagLayout gbl; GridBagConstraints gbc; public Order() { labOrderNo = new JLabel("Order No.: "); txtOrderNo = new JTextField(10); panel = new JPanel(); getContentPane().add(panel); gbl = new GridBagLayout(); gbc = new GridBagConstraints(); panel.setLayout(gbl); gbc.anchor = GridBagConstraints.NORTHWEST; gbc.gridx = 0; gbc.gridy = 0; gbl.setConstraints(labOrderNo, gbc); panel.add(labOrderNo); gbc.gridx = 1; gbc.gridy = 0; gbl.setConstraints(txtOrderNo, gbc); panel.add(txtOrderNo); } /* public void init() { Order myOrder = new Order(); } */ } public class OrderDetail extends Order implements ActionListener, ItemListener { protected int statusFlag = 0; protected int toyQty; protected float toyCost, toyAmount, toyTotal = 0f; final String toyIds[] = {"001", "010", "102"}; final String giftWraps[] = {"birthday", "graduation"}; final String wrapperIds[] = {"Tony", "Ricky", "Rose"}; final JLabel labToyId, labQty, labGiftWrap; final JLabel labWrapperId, labMessage, labToyCost; protected JTextField txtQty, txtMessage, txtToyCost; protected JComboBox cmbToyId, cmbGiftWrap, cmbWrapperId; final JButton butAccept, butCancel; public OrderDetail() { super(); labToyId = new JLabel("Toy Id: "); labQty = new JLabel("Qty: "); labGiftWrap = new JLabel("Gift Wrap: "); labWrapperId = new JLabel("Wrapper Id: "); labMessage = new JLabel("Message: "); labToyCost = new JLabel("Toy Cost: "); cmbToyId = new JComboBox(toyIds); txtQty = new JTextField(5); cmbGiftWrap = new JComboBox(giftWraps); cmbWrapperId = new JComboBox(wrapperIds); txtMessage = new JTextField(20); txtToyCost = new JTextField(5); butAccept = new JButton("Accept"); butCancel = new JButton("Cancel"); gbc.gridx = 0; gbc.gridy = 1; gbl.setConstraints(labToyId, gbc); panel.add(labToyId); gbc.gridx = 1; gbc.gridy = 1; gbl.setConstraints(cmbToyId, gbc); cmbToyId.setSelectedIndex(-1); panel.add(cmbToyId); cmbToyId.addItemListener(this); gbc.gridx = 0; gbc.gridy = 2; gbl.setConstraints(labQty, gbc); panel.add(labQty); gbc.gridx = 1; gbc.gridy = 2; gbl.setConstraints(txtQty, gbc); panel.add(txtQty); gbc.gridx = 0; gbc.gridy = 3; gbl.setConstraints(labGiftWrap, gbc); panel.add(labGiftWrap); gbc.gridx = 1; gbc.gridy = 3; gbl.setConstraints(cmbGiftWrap, gbc); cmbGiftWrap.setSelectedIndex(-1); panel.add(cmbGiftWrap); gbc.gridx = 0; gbc.gridy = 4; gbl.setConstraints(labWrapperId, gbc); panel.add(labWrapperId); gbc.gridx = 1; gbc.gridy = 4; gbl.setConstraints(cmbWrapperId, gbc); cmbWrapperId.setSelectedIndex(-1); panel.add(cmbWrapperId); gbc.gridx = 0; gbc.gridy = 5; gbl.setConstraints(labMessage, gbc); panel.add(labMessage); gbc.gridx = 1; gbc.gridy = 5; gbl.setConstraints(txtMessage, gbc); panel.add(txtMessage); gbc.gridx = 0; gbc.gridy = 6; gbl.setConstraints(labToyCost, gbc); panel.add(labToyCost); gbc.gridx = 1; gbc.gridy = 6; gbl.setConstraints(txtToyCost, gbc); panel.add(txtToyCost); txtToyCost.setEditable(false); gbc.gridx = 2; gbc.gridy = 8; gbl.setConstraints(butAccept, gbc); panel.add(butAccept); butAccept.addActionListener(this); gbc.gridx = 3; gbc.gridy = 8; gbl.setConstraints(butCancel, gbc); panel.add(butCancel); butCancel.addActionListener(this); } public boolean isQtyNumeric() { String qtemp = txtQty.getText(); for(int i = 0; i <= qtemp.length()-1; i++) { if(qtemp.charAt(i) < '0' || qtemp.charAt(i) > '9') { return false; } } return true; } public void showError(String msg) { getAppletContext().showStatus(msg); } public boolean orderNoNotEmpty() { String tmp; tmp = txtOrderNo.getText(); if(tmp.length() == 0) { showError("Order No. cannot be empty."); return false; } return true; } public boolean isItemOrdered() { if(toyTotal == 0f) { showError("You must order something."); return false; } else { return true; } } public void resetOrder() { txtOrderNo.setText(""); cmbToyId.setSelectedIndex(-1); txtQty.setText(""); cmbGiftWrap.setSelectedIndex(-1); cmbWrapperId.setSelectedIndex(-1); txtMessage.setText(""); txtToyCost.setText(""); getAppletContext().showStatus(""); } public void setToyCost() { int tmp = cmbToyId.getSelectedIndex(); if(tmp == 0) { txtToyCost.setText("10.00"); } else if(tmp == 1) { txtToyCost.setText("20.00"); } else if(tmp == 2) { txtToyCost.setText("30.00"); } } public boolean isQtyEmpty() { String temp = txtQty.getText(); if(temp.length() == 0) { return true; } else { return false; } } public int getQty() { String qtemp = txtQty.getText(); int qty = Integer.parseInt(qtemp); return qty; } public float getCost() { String ctemp = txtToyCost.getText(); float cost = (float) Double.parseDouble(ctemp); return cost; } public void computeToyCost() { toyQty = getQty(); setToyCost(); toyCost = getCost(); toyAmount = toyQty * toyCost; toyTotal = toyTotal + toyAmount; } public void resetQty() { txtQty.setText(""); statusFlag = 1; } public void showQtyError() { if(statusFlag == 1) { statusFlag = 0; return; } else { getAppletContext().showStatus("Enter Qty then select Toy Id."); } } public void showToyAmount() { getAppletContext().showStatus("Toy Amount: " + toyAmount); } public void showBill() { getAppletContext().showStatus("Your Bill: Php " + toyTotal); } public void itemStateChanged(ItemEvent e) { if(isQtyEmpty() == true) { showQtyError(); } else { if(orderNoNotEmpty()) { if(isQtyNumeric() == false) { showError("Qty should be numeric."); } else { computeToyCost(); showToyAmount(); resetQty(); } } } } public void actionPerformed(ActionEvent e) { if(e.getSource() == butAccept) { if(orderNoNotEmpty()) { if(isItemOrdered()) { showBill(); } } } else if(e.getSource() == butCancel) { toyTotal = 0f; resetOrder(); } } public void init() { OrderDetail myOrderDetail = new OrderDetail(); } } /* The code is a bit disorganized, you may try restructuring it by reorganizing the methods to make the code more compact. Be sure to recompile and test if the code still works. */