peter_budo
Code tags enforcer
Moderator
15,436 posts since Dec 2004
Reputation Points: 2,806
Solved Threads: 902
ive doing a homework which we need to provide buttons (GUI) for a vending machine.
the vending machine takes dollars, quaters, dimes, and nickels, and the vending machine has drinks (60 cents) and snacks (45 cents).
we done a code were it does work through "SCANNER", but now we have to create a GUI for it.
/**
* VendingMachineCUI: A program that emulates a vending machine. It uses a
* VendingMachine object to represent a vending machine, and interacts with
* the user through the console.
*/
import java.util.*; // for Scanner class
public class VendingMachineCUI
{
public static void main (String[] args)
{
char action; // Store user's input characters
String strDrinkAvailable, // whether drink is sold out
strSnackAvailable; // whether snack is sold out
Change change; // Used to keep a change
// Create a Scanner object for input
Scanner keyboard = new Scanner (System.in);
// Create a vending machine object
VendingMachine vm = new VendingMachine ();
while (true)
{
if (vm.isItemAvailable (VendingMachine.ITEM_TYPE_DRINK))
strDrinkAvailable = "";
else
strDrinkAvailable = " (sold out)";
if (vm.isItemAvailable (VendingMachine.ITEM_TYPE_SNACK))
strSnackAvailable = "";
else
strSnackAvailable = " (sold out)";
// Display the menu
System.out.println (
"A - Drink" + strDrinkAvailable + "\n" +
"B - Snack" + strSnackAvailable + "\n\n" +
"D - Enter a dollar\n" +
"Q - Enter a quarter\n" +
"M - Enter a dime\n" +
"N - Enter a nickel\n\n" +
"R - Return change\n\n");
// Display the amount entered in the machine
System.out.println ("Amount available: " + vm.getAmountAvailable () + "\n\n");
// Get user's action
System.out.print ("Your action: ");
action = keyboard.next ().charAt (0);
action = Character.toUpperCase (action);
// Process
switch (action)
{
case 'A':
if (! vm.isItemAvailable (VendingMachine.ITEM_TYPE_DRINK))
System.out.println ("Sorry, it's sold out");
else if (! vm.isMoneyEnough (VendingMachine.ITEM_TYPE_DRINK))
System.out.println ("Sorry, not enough money for the purchase");
else if (vm.buyItem (VendingMachine.ITEM_TYPE_DRINK))
System.out.println ("Here is your drink");
break;
case 'B':
if (! vm.isItemAvailable (VendingMachine.ITEM_TYPE_SNACK))
System.out.println ("Sorry, it's sold out");
else if (! vm.isMoneyEnough (VendingMachine.ITEM_TYPE_SNACK))
System.out.println ("Sorry, not enough money for the purchase");
else if (vm.buyItem (VendingMachine.ITEM_TYPE_SNACK))
System.out.println ("Here is your snack");
break;
case 'D':
vm.inputDollar ();
break;
case 'Q':
vm.inputQuarter ();
break;
case 'M':
vm.inputDime ();
break;
case 'N':
vm.inputNickel ();
break;
case 'R':
change = vm.makeChange ();
// Display the coins to the user
System.out.println (
"# of quarters: " + change.getQuarters () + "\n" +
"# of dimes: " + change.getDimes () + "\n" +
"# of nickles: " + change.getNickels () + "\n");
break;
default:
System.out.println ("Sorry, " + action + " is an invalid option");
break; // simply do nothing for a invalid input
} // end of switch
System.out.println ("\n"); // get a vertical space
} // end of while
}
}
thats the scanner one, it does work (since i have other programs which displays the change, and everyything else).
but i dont know where to start...
ive done one program with GUI, and was still strugglin about it.
i know the basics, such as...
inputing
import java.awt.*;
import java.awt.event.*; to activate the whole "event" thing through the eAction..
any help will be appreciateed...
thanks.
For start you can search java forum for similar topics as they been discussed over time often...