Java Reference
In-Depth Information
23
super(
"Fractal"
);
24
25
// set up levelJLabel to add to controlJPanel
26
final
JLabel levelJLabel =
new
JLabel(
"Level: 0"
);
27
28
final
FractalJPanel drawSpace =
new
FractalJPanel(
0)
;
29
30
// set up control panel
31
final
JPanel controlJPanel =
new
JPanel();
32
controlJPanel.setLayout(
new
FlowLayout());
33
34
// set up color button and register listener
35
final
JButton changeColorJButton =
new
JButton(
"Color"
);
36
controlJPanel.add(changeColorJButton);
37
changeColorJButton.addActionListener(
38
new
ActionListener()
// anonymous inner class
39
{
40
// process changeColorJButton event
41
@Override
42
public
void
actionPerformed(ActionEvent event)
43
{
44
Color color = JColorChooser.showDialog(
45
Fractal.
this
,
"Choose a color"
,
Color.BLUE
);
46
47
// set default color, if no color is returned
48
if
(color ==
null
)
49
color =
Color.BLUE
;
50
51
drawSpace.setColor(color);
52
}
53
}
// end anonymous inner class
54
);
// end addActionListener
55
56
// set up decrease level button to add to control panel and
57
// register listener
58
final
JButton decreaseLevelJButton =
new
JButton(
"Decrease Level"
);
59
controlJPanel.add(decreaseLevelJButton);
60
decreaseLevelJButton.addActionListener(
61
new
ActionListener()
// anonymous inner class
62
{
63
// process decreaseLevelJButton event
64
@Override
65
public
void
actionPerformed(ActionEvent event)
66
{
67
int
level = drawSpace.getLevel();
--level;
68
69
70
// modify level if possible
71
if
((level >=
MIN_LEVEL
)) &&
72
(level <=
MAX_LEVEL
))
73
{
74
levelJLabel.setText(
"Level: "
+ level);
Fig. 18.18
|
Fractal user interface. (Part 2 of 3.)