Java Reference
In-Depth Information
4
5
public class
SliderDemo
extends
JFrame {
6
// Create horizontal and vertical sliders
7
private
JSlider jsldHort =
new
JSlider(JSlider.HORIZONTAL);
horizontal slider
vertical slider
8
private
JSlider jsldVert =
new
JSlider(JSlider.VERTICAL);
9
10
// Create a MessagePanel
11
private
MessagePanel messagePanel =
12
new
MessagePanel(
"Welcome to Java"
);
13
14
public static void
main(String[] args) {
15 SliderDemo frame =
new
SliderDemo();
16 frame.setTitle(
"SliderDemo"
);
17 frame.setLocationRelativeTo(
null
);
// Center the frame
18 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
19 frame.pack();
20 frame.setVisible(
true
);
21 }
22
23
public
SliderDemo() {
24
// Add sliders and message panel to the frame
25 setLayout(
new
BorderLayout(
5
,
5
));
26 add(messagePanel, BorderLayout.CENTER);
27 add(jsldVert, BorderLayout.EAST);
28 add(jsldHort, BorderLayout.SOUTH);
29
30
// Set properties for sliders
31 jsldHort.setMaximum(
50
);
32 jsldHort.setPaintLabels(
true
);
33 jsldHort.setPaintTicks(
true
);
34 jsldHort.setMajorTickSpacing(
10
);
35 jsldHort.setMinorTickSpacing(
1
);
36 jsldHort.setPaintTrack(
false
);
37 jsldVert.setInverted(
true
);
38 jsldVert.setMaximum(
10
);
39 jsldVert.setPaintLabels(
true
);
40 jsldVert.setPaintTicks(
true
);
41 jsldVert.setMajorTickSpacing(
10
);
42 jsldVert.setMinorTickSpacing(
1
);
43
44
// Register listener for the sliders
45 jsldHort.addChangeListener(
new
ChangeListener() {
46 @Override
/** Handle scroll-bar adjustment actions */
47
public void
stateChanged(ChangeEvent e) {
48
// getValue() and getMaximumValue() return int, but for better
49
// precision, use double
50
double
value = jsldHort.getValue();
51
double
maximumValue = jsldHort.getMaximum();
52
double
newX = (value * messagePanel.getWidth() /
53 maximumValue);
54 messagePanel.setXCoordinate((
int
)newX);
55 }
56 });
57 jsldVert.addChangeListener(
new
ChangeListener() {
58 @Override
/** Handle scroll-bar adjustment actions */
59
create frame
create UI
slider properties
listener
listener
public void
stateChanged(ChangeEvent e) {
60
// getValue() and getMaximum() return int, but for better
61
// precision, use double
62
double
value = jsldVert.getValue();
63
double
maximumValue = jsldVert.getMaximum();