1 /* SliderDemo.java -- An example showing JSlider in various configurations.
2 Copyright (C) 2005, 2006, Free Software Foundation, Inc.
4 This file is part of GNU Classpath examples.
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING. If not, write to the
18 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23 package gnu
.classpath
.examples
.swing
;
25 import java
.awt
.BorderLayout
;
26 import java
.awt
.GridLayout
;
27 import java
.awt
.event
.ActionEvent
;
28 import java
.awt
.event
.ActionListener
;
30 import javax
.swing
.JButton
;
31 import javax
.swing
.JCheckBox
;
32 import javax
.swing
.JComponent
;
33 import javax
.swing
.JFrame
;
34 import javax
.swing
.JPanel
;
35 import javax
.swing
.JSlider
;
36 import javax
.swing
.SwingUtilities
;
38 public class SliderDemo
40 implements ActionListener
61 JCheckBox enabledCheckBox
;
69 * When the demo is run independently, the frame is displayed, so we should
70 * initialise the content panel (including the demo content and a close
71 * button). But when the demo is run as part of the Swing activity board,
72 * only the demo content panel is used, the frame itself is never displayed,
73 * so we can avoid this step.
75 void initFrameContent()
77 JPanel closePanel
= new JPanel();
78 JButton closeButton
= new JButton("Close");
79 closeButton
.setActionCommand("CLOSE");
80 closeButton
.addActionListener(this);
81 closePanel
.add(closeButton
);
82 add(closePanel
, BorderLayout
.SOUTH
);
86 * Returns a panel with the demo content. The panel
87 * uses a BorderLayout(), and the BorderLayout.SOUTH area
88 * is empty, to allow callers to add controls to the
89 * bottom of the panel if they want to (a close button is
90 * added if this demo is being run as a standalone demo).
92 private void createContent()
94 setLayout(new BorderLayout());
95 JPanel panel
= new JPanel(new GridLayout(1, 2));
96 panel
.add(createHorizontalPanel());
97 panel
.add(createVerticalPanel());
98 enabledCheckBox
= new JCheckBox("Enabled");
99 enabledCheckBox
.setSelected(true);
100 enabledCheckBox
.setActionCommand("TOGGLE_ENABLED");
101 enabledCheckBox
.addActionListener(this);
102 JPanel checkBoxPanel
= new JPanel();
103 checkBoxPanel
.add(enabledCheckBox
);
104 JPanel panel2
= new JPanel(new BorderLayout());
106 panel2
.add(checkBoxPanel
, BorderLayout
.SOUTH
);
110 private JPanel
createHorizontalPanel()
112 JPanel panel
= new JPanel(new GridLayout(8, 1));
114 hslider1
= new JSlider(JSlider
.HORIZONTAL
, 0, 100, 35);
117 hslider2
= new JSlider(JSlider
.HORIZONTAL
, 0, 100, 35);
118 hslider2
.setMajorTickSpacing(20);
119 hslider2
.setMinorTickSpacing(5);
120 hslider2
.setPaintTicks(true);
123 hslider3
= new JSlider(JSlider
.HORIZONTAL
, 0, 100, 35);
124 hslider3
.setMajorTickSpacing(20);
125 hslider3
.setMinorTickSpacing(5);
126 hslider3
.setPaintLabels(true);
127 hslider3
.setPaintTicks(true);
130 hslider4
= new JSlider(JSlider
.HORIZONTAL
, 0, 100, 35);
131 hslider4
.putClientProperty("JSlider.isFilled", Boolean
.TRUE
);
132 hslider4
.setMajorTickSpacing(20);
133 hslider4
.setMinorTickSpacing(5);
134 hslider4
.setPaintLabels(true);
135 hslider4
.setPaintTicks(true);
138 hslider5
= new JSlider(JSlider
.HORIZONTAL
, 0, 100, 35);
139 hslider5
.setInverted(true);
142 hslider6
= new JSlider(JSlider
.HORIZONTAL
, 0, 100, 35);
143 hslider6
.setInverted(true);
144 hslider6
.setMajorTickSpacing(20);
145 hslider6
.setMinorTickSpacing(5);
146 hslider6
.setPaintTicks(true);
149 hslider7
= new JSlider(JSlider
.HORIZONTAL
, 0, 100, 35);
150 hslider7
.setInverted(true);
151 hslider7
.setMajorTickSpacing(20);
152 hslider7
.setMinorTickSpacing(5);
153 hslider7
.setPaintLabels(true);
154 hslider7
.setPaintTicks(true);
157 hslider8
= new JSlider(JSlider
.HORIZONTAL
, 0, 100, 35);
158 hslider8
.putClientProperty("JSlider.isFilled", Boolean
.TRUE
);
159 hslider8
.setInverted(true);
160 hslider8
.setMajorTickSpacing(20);
161 hslider8
.setMinorTickSpacing(5);
162 hslider8
.setPaintLabels(true);
163 hslider8
.setPaintTicks(true);
169 private JPanel
createVerticalPanel()
171 JPanel panel
= new JPanel(new GridLayout(1, 8));
173 vslider1
= new JSlider(JSlider
.VERTICAL
, 0, 100, 35);
176 vslider2
= new JSlider(JSlider
.VERTICAL
, 0, 100, 35);
177 vslider2
.setMajorTickSpacing(20);
178 vslider2
.setMinorTickSpacing(5);
179 vslider2
.setPaintTicks(true);
182 vslider3
= new JSlider(JSlider
.VERTICAL
, 0, 100, 35);
183 vslider3
.setMajorTickSpacing(20);
184 vslider3
.setMinorTickSpacing(5);
185 vslider3
.setPaintLabels(true);
186 vslider3
.setPaintTicks(true);
189 vslider4
= new JSlider(JSlider
.VERTICAL
, 0, 100, 35);
190 vslider4
.putClientProperty("JSlider.isFilled", Boolean
.TRUE
);
191 vslider4
.setMajorTickSpacing(20);
192 vslider4
.setMinorTickSpacing(5);
193 vslider4
.setPaintLabels(true);
194 vslider4
.setPaintTicks(true);
197 vslider5
= new JSlider(JSlider
.VERTICAL
, 0, 100, 35);
198 vslider5
.setInverted(true);
201 vslider6
= new JSlider(JSlider
.VERTICAL
, 0, 100, 35);
202 vslider6
.setInverted(true);
203 vslider6
.setMajorTickSpacing(20);
204 vslider6
.setMinorTickSpacing(5);
205 vslider6
.setPaintTicks(true);
208 vslider7
= new JSlider(JSlider
.VERTICAL
, 0, 100, 35);
209 vslider7
.setInverted(true);
210 vslider7
.setMajorTickSpacing(20);
211 vslider7
.setMinorTickSpacing(5);
212 vslider7
.setPaintLabels(true);
213 vslider7
.setPaintTicks(true);
216 vslider8
= new JSlider(JSlider
.VERTICAL
, 0, 100, 35);
217 vslider8
.putClientProperty("JSlider.isFilled", Boolean
.TRUE
);
218 vslider8
.setInverted(true);
219 vslider8
.setMajorTickSpacing(20);
220 vslider8
.setMinorTickSpacing(5);
221 vslider8
.setPaintLabels(true);
222 vslider8
.setPaintTicks(true);
227 public void actionPerformed(ActionEvent e
)
229 if (e
.getActionCommand().equals("CLOSE"))
233 else if (e
.getActionCommand().equals("TOGGLE_ENABLED"))
235 boolean enabled
= enabledCheckBox
.isSelected();
236 hslider1
.setEnabled(enabled
);
237 hslider2
.setEnabled(enabled
);
238 hslider3
.setEnabled(enabled
);
239 hslider4
.setEnabled(enabled
);
240 hslider5
.setEnabled(enabled
);
241 hslider6
.setEnabled(enabled
);
242 hslider7
.setEnabled(enabled
);
243 hslider8
.setEnabled(enabled
);
244 vslider1
.setEnabled(enabled
);
245 vslider2
.setEnabled(enabled
);
246 vslider3
.setEnabled(enabled
);
247 vslider4
.setEnabled(enabled
);
248 vslider5
.setEnabled(enabled
);
249 vslider6
.setEnabled(enabled
);
250 vslider7
.setEnabled(enabled
);
251 vslider8
.setEnabled(enabled
);
254 public static void main(String
[] args
)
256 SwingUtilities
.invokeLater
261 SliderDemo app
= new SliderDemo();
262 app
.initFrameContent();
263 JFrame frame
= new JFrame("Slider Demo");
264 frame
.getContentPane().add(app
);
266 frame
.setVisible(true);
273 * Returns a DemoFactory that creates a SliderDemo.
275 * @return a DemoFactory that creates a SliderDemo
277 public static DemoFactory
createDemoFactory()
279 return new DemoFactory()
281 public JComponent
createDemo()
283 return new SliderDemo();