import javax.swing.*; // J components import java.awt.event.*; // ActionListener import java.util.*; // collections import java.awt.*; // Layout managers, ... /** Class for the minimarket applet * @author (sdb) * @author(Rob Russell) //made edits for question 4 */ public class Market extends JApplet // We're using JComponents implements ActionListener { private java.util.List items; private Map data; private JTextField custTxt; private JRadioButton pickupButton; private JRadioButton deliverButton; //made the label a field instead of it being defined locally private JLabel theLabel = new JLabel ("Choose One"); private java.awt.List report; public void init () { data = new TreeMap (); this.setLayout (new BorderLayout()); JPanel custPanel = new JPanel(new GridLayout (0,1)); custPanel.add (new JLabel("Enter name")); custTxt = new JTextField(); custPanel.add (custTxt); add (custPanel, BorderLayout.NORTH); // Items to be selected go in the West JPanel itemPanel = new JPanel(); itemPanel.setLayout (new GridLayout (0,1)); itemPanel.add (new JLabel ("Select items")); items = new ArrayList (); JCheckBox soda = new JCheckBox ("Soda"); items.add (soda); itemPanel.add (soda); JCheckBox chips= new JCheckBox ("Chips"); items.add (chips); itemPanel.add (chips); JCheckBox dips = new JCheckBox ("Dips"); items.add (dips); itemPanel.add (dips); JCheckBox beer = new JCheckBox ("Beer"); items.add (beer); itemPanel.add (beer); add (itemPanel, BorderLayout.WEST); JPanel pickupPanel = new JPanel(new GridLayout (0,1)); pickupPanel.add (theLabel); pickupButton = new JRadioButton ("Pickup"); deliverButton = new JRadioButton ("Deliver"); pickupPanel.add (pickupButton); pickupPanel.add (deliverButton); add (pickupPanel, BorderLayout.CENTER); ButtonGroup group = new ButtonGroup(); group.add (pickupButton); group.add (deliverButton); JPanel reportPanel = new JPanel(new GridLayout (0,1)); JButton cartButton = new JButton ("Add to cart"); JPanel cartPanel = new JPanel (); // Flow cartPanel.add (cartButton); cartButton.addActionListener (this); report = new java.awt.List (); reportPanel.add (cartPanel); reportPanel.add (report); add (reportPanel, BorderLayout.EAST); } // All Actionlisteners must implement actionPerformed public void actionPerformed (ActionEvent e) { String customer = custTxt.getText().trim(); for (JCheckBox item : items) if (item.isSelected()) { String key = customer + " " + item.getText(); if (data.containsKey (key)) data.put (key, data.get(key)+1); else data.put (key, 1); } //Modifications here for question 4 for switching the label String pickup = null; if (deliverButton.isSelected()) pickup = "deliver"; if(pickupButton.isSelected()) pickup = "pickup"; if(pickup != null) { setList (customer, pickup); theLabel.setText("Choose One"); } else { theLabel.setText("Must Choose One"); } } // Copy strings into the List box private void setList (String customer, String pickup) { report.removeAll(); // erase all strings report.add (customer); report.add (pickup); report.add (""); Set keys; keys = data.keySet(); for (String key : keys) if (key.startsWith (customer)) report.add (key + " " + data.get(key)); } }