-
Notifications
You must be signed in to change notification settings - Fork 2
/
IceCreamMaker.java
167 lines (143 loc) · 4.37 KB
/
IceCreamMaker.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.*;
import java.awt.*;
/**
* This class acts as the controller of the ice cream application it extends
* JPanel and implements Action Listener
*
* @author Nada-Al-Thawr
*
*/
public class IceCreamMaker extends JPanel implements ActionListener {
/**
* @param cone
* , which is an instant of the ice cream cone class
* @param vanButton
* , JButton
* @param chocolateButton
* , JButton
* @param strawButton
* , JButton
* @param teaButton
* , JButton
* @param trashButton
* , JButton
* @param randomButton
* , JButton
*/
IceCreamCone cone = new IceCreamCone();
JButton vanButton;
JButton chocolateButton;
JButton strawButton;
JButton teaButton;
JButton trashButton;
JButton randomButton;
/**
* constructor
*/
public IceCreamMaker() {
// call super
super(new BorderLayout());
// create a new icecreamcone
// call make button
makeButton();
// add make button to the north of the border layout
add(makeButton(), BorderLayout.NORTH);
// add the cone to the center of the border layout
add(cone, BorderLayout.CENTER);
}
/**
* makeButton, makes all the buttons
*
* @return JPanel
*/
public JPanel makeButton() {
// two new grid layouts for the flavor buttons and the trash button
GridLayout buttonGrid = new GridLayout(1, 5);
GridLayout trashGrid = new GridLayout(1, 1);
// create three panels for both the grids
// and the main panel they're both added to
JPanel myPanel = new JPanel(buttonGrid);
JPanel trashPanel = new JPanel(trashGrid);
JPanel thePanel = new JPanel(new BorderLayout());
// add the grid panels to the main panel
thePanel.add(myPanel, BorderLayout.NORTH);
thePanel.add(trashPanel, BorderLayout.SOUTH);
// create the trash button, set the color and show it
trashButton = new JButton("Eat the heart out of your scoop!");
trashButton.setBackground(Color.cyan);
trashButton.setOpaque(true);
// create the vanilla button, set the color and show it
vanButton = new JButton("vanilla");
vanButton.setBackground(Color.white);
vanButton.setOpaque(true);
// create the tea button, set the color and show it
teaButton = new JButton("Green Tea");
teaButton.setBackground(Color.green);
teaButton.setOpaque(true);
// create the strawberry button, set the color and show it
strawButton = new JButton("strawberry");
strawButton.setBackground(Color.pink);
strawButton.setOpaque(true);
// create the chocolate button, set the color and show it
chocolateButton = new JButton("chocolate");
chocolateButton.setBackground(Color.orange);
chocolateButton.setOpaque(true);
// create the random button, set the color and show it
randomButton = new JButton("Random");
randomButton.setBackground(Color.YELLOW);
randomButton.setOpaque(true);
myPanel.add(vanButton);
myPanel.add(teaButton);
myPanel.add(strawButton);
myPanel.add(chocolateButton);
myPanel.add(randomButton);
trashPanel.add(trashButton);
// implement action listener for the buttons
vanButton.addActionListener(this);
strawButton.addActionListener(this);
teaButton.addActionListener(this);
chocolateButton.addActionListener(this);
trashButton.addActionListener(this);
randomButton.addActionListener(this);
// return the main panel
return thePanel;
}
/*
* To make the buttons do what they are supposed to Call the addFlavor
* method for each
*/
public void actionPerformed(ActionEvent e) {
if (e.getSource() == vanButton) {
// the vanilla button adds vanilla flavor
cone.addFlavor("vanilla");
}
if (e.getSource() == chocolateButton) {
// the chocolate button adds chocolate flavor
cone.addFlavor("chocolate");
}
if (e.getSource() == teaButton) {
// the tea button adds tea flavor
cone.addFlavor("tea");
}
if (e.getSource() == strawButton) {
// the strawbutton adds strawberry flavor
cone.addFlavor("strawberry");
}
if (e.getSource() == trashButton) {
// the trash button deletes the scoop
cone.deleteScoop();
}
if (e.getSource() == randomButton) {
// the random button adds random scoops
cone.addRandomScoop();
}
}
}