Java Reference
In-Depth Information
19
// validate and set diameter, then repaint
20
public
void
setDiameter(
int
newDiameter)
21
{
22
// if diameter invalid, default to 10
23
diameter = (newDiameter >=
0
? newDiameter :
10
);
24
repaint();
// repaint panel
25
}
26
27
// used by layout manager to determine preferred size
28
public
Dimension getPreferredSize()
29
{
30
return
new
Dimension(
200
,
200
);
31
}
32
33
// used by layout manager to determine minimum size
public
Dimension getMinimumSize()
{
return
getPreferredSize();
}
34
35
36
37
38
}
// end class OvalPanel
Fig. 22.2
|
JPanel
subclass for drawing circles of a specified diameter. (Part 2 of 2.)
1
// Fig. 22.3: SliderFrame.java
2
// Using JSliders to size an oval.
3
import
java.awt.BorderLayout;
4
import
java.awt.Color;
5
import
javax.swing.JFrame;
6
7
import
javax.swing.JSlider;
import
javax.swing.SwingConstants;
8
9
10
11
import
javax.swing.event.ChangeListener;
import
javax.swing.event.ChangeEvent;
public
class
SliderFrame
extends
JFrame
12
{
13
private final
JSlider diameterJSlider;
// slider to select diameter
14
private final
OvalPanel myPanel;
// panel to draw circle
15
16
// no-argument constructor
17
public
SliderFrame()
18
{
19
super
(
"Slider Demo"
);
20
21
myPanel =
new
OvalPanel();
// create panel to draw circle
22
myPanel.setBackground(
Color.YELLOW
);
23
24
// set up JSlider to control diameter value
diameterJSlider =
new
JSlider(
SwingConstants.HORIZONTAL
,
0
,
200
,
10
);
diameterJSlider.setMajorTickSpacing(
10
);
// create tick every 10
diameterJSlider.setPaintTicks(
true
);
// paint ticks on slider
25
26
27
28
29
Fig. 22.3
|
JSlider
value used to determine the diameter of a circle. (Part 1 of 2.)