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();