I need to use GUI programming in Java, including components, layouts, listeners,
ID: 3555303 • Letter: I
Question
I need to use GUI programming in Java, including components, layouts, listeners, handlers. And practice how the GUI interacts with the back-end data processing in a program.
I have to modify the given GUI demo (FastFood) by adding a few buttons to allow the user more options for ordering foods and drinks such as more ingredients or less for hamburgers and/or various sizes for drinks.
*****PLEASE HELP!******
Fast Food Class:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class FastFood extends JFrame implements ActionListener
{
private JTextField display;
private JPanel buttonPanel;
private JTextArea receipt;
private JButton hb; //hamburger
private JButton fr; //fries
private JButton dk; //drink
private JButton ck;
private JButton cancel;
private JButton newC;
private Container contentPane;
private JScrollPane scrollPane;
private String receiptMsg;
private Item lastItemOrdered;
private final double HB_PRICE = 2.99;
private final double FR_PRICE = 1.99;
private final double DK_PRICE = 0.99;
private double total;
private String WELCOME = "welcome to jack's junk food! start ordering........";
private String displayMsg;
public static void main (String [ ] args)
{
FastFood jack = new FastFood ( );
jack.setVisible(true);
}
public FastFood ( )
{
setSize (600,400);
contentPane = getContentPane ( );
setDefaultCloseOperation (EXIT_ON_CLOSE);
contentPane.setLayout (new BorderLayout ( ));
display = new JTextField (50);
contentPane.add (display, BorderLayout.NORTH);
receipt = new JTextArea (10,50);
scrollPane = new JScrollPane (receipt);
contentPane.add (scrollPane, BorderLayout.SOUTH);
buttonPanel = new JPanel ( );
buttonPanel.setLayout (new FlowLayout ( ));
hb = new JButton ("HB");
hb.addActionListener (this);
buttonPanel.add (hb);
fr = new JButton ("FR");
fr.addActionListener (this);
buttonPanel.add (fr);
dk = new JButton ("DK");
dk.addActionListener (this);
buttonPanel.add (dk);
cancel = new JButton ("Cancel");
cancel.addActionListener (this);
buttonPanel.add (cancel);
newC = new JButton ("New");
newC.addActionListener (this);
buttonPanel.add (newC);
ck = new JButton ("Check");
ck.addActionListener (this);
buttonPanel.add (ck);
contentPane.add (buttonPanel, BorderLayout.CENTER);
hb.setEnabled (false);
fr.setEnabled (false);
dk.setEnabled (false);
cancel.setEnabled (false);
ck.setEnabled (false);
newC.setEnabled (true);
receiptMsg = "";
displayMsg = "";
total = 0;
}
public void actionPerformed (ActionEvent ex)
{
String whichOne = ex.getActionCommand ( );
if (whichOne.equals ("New"))
{
display.setText ("");
receiptMsg = WELCOME;
receipt.setText (receiptMsg);
displayMsg = "";
display.setText (displayMsg);
total = 0;
hb.setEnabled (true);
fr.setEnabled (true);
dk.setEnabled (true);
cancel.setEnabled (true);
ck.setEnabled (true);
newC.setEnabled (true);
}
else if (whichOne.equals ("Cancel"))
{
total -= lastItemOrdered.getPrice ( ) ;
receiptMsg += (" CANCEL " + lastItemOrdered + ".....subtracted" );
receipt.setText (receiptMsg);
displayMsg += ("-" + lastItemOrdered.getPrice ( ));
display.setText (displayMsg);
}
else if (whichOne.equals ("Check"))
{
receiptMsg += (" ***total = " + total + " thank you");
receipt.setText (receiptMsg);
displayMsg += ("=" + total);
display.setText (displayMsg);
}
else
{
if (whichOne.equals ("HB"))
lastItemOrdered = new Item ("hamburger",HB_PRICE);
else if (whichOne.equals ("FR"))
lastItemOrdered = new Item ("fries",FR_PRICE);
else if (whichOne.equals ("DK"))
lastItemOrdered = new Item ("drink",DK_PRICE);
total += lastItemOrdered.getPrice ( );
receiptMsg += lastItemOrdered;
receipt.setText (receiptMsg);
displayMsg += ("+" + lastItemOrdered.getPrice ( ));
display.setText (displayMsg);
}
}
}
Item Class:
public class Item
{
private String name;
private double price;
public Item (String nName, double nPrice)
{
price = nPrice;
name = nName;
}
public double getPrice ( )
{
return price;
}
public String toString ( )
{
return " 1 " + name + "...price: " + price;
}
}