Imported GNU Classpath 0.90
[official-gcc.git] / libjava / classpath / examples / gnu / classpath / examples / swing / SliderDemo.java
blobdf84cc63645235db311564afa2e310a82297cd82
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)
9 any later version.
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
19 02110-1301 USA.
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
39 extends JPanel
40 implements ActionListener
43 JSlider hslider1;
44 JSlider hslider2;
45 JSlider hslider3;
46 JSlider hslider4;
47 JSlider hslider5;
48 JSlider hslider6;
49 JSlider hslider7;
50 JSlider hslider8;
52 JSlider vslider1;
53 JSlider vslider2;
54 JSlider vslider3;
55 JSlider vslider4;
56 JSlider vslider5;
57 JSlider vslider6;
58 JSlider vslider7;
59 JSlider vslider8;
61 JCheckBox enabledCheckBox;
63 public SliderDemo()
65 createContent();
68 /**
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);
85 /**
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).
91 */
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());
105 panel2.add(panel);
106 panel2.add(checkBoxPanel, BorderLayout.SOUTH);
107 add(panel2);
110 private JPanel createHorizontalPanel()
112 JPanel panel = new JPanel(new GridLayout(8, 1));
114 hslider1 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35);
115 panel.add(hslider1);
117 hslider2 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35);
118 hslider2.setMajorTickSpacing(20);
119 hslider2.setMinorTickSpacing(5);
120 hslider2.setPaintTicks(true);
121 panel.add(hslider2);
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);
128 panel.add(hslider3);
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);
136 panel.add(hslider4);
138 hslider5 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35);
139 hslider5.setInverted(true);
140 panel.add(hslider5);
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);
147 panel.add(hslider6);
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);
155 panel.add(hslider7);
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);
164 panel.add(hslider8);
166 return panel;
169 private JPanel createVerticalPanel()
171 JPanel panel = new JPanel(new GridLayout(1, 8));
173 vslider1 = new JSlider(JSlider.VERTICAL, 0, 100, 35);
174 panel.add(vslider1);
176 vslider2 = new JSlider(JSlider.VERTICAL, 0, 100, 35);
177 vslider2.setMajorTickSpacing(20);
178 vslider2.setMinorTickSpacing(5);
179 vslider2.setPaintTicks(true);
180 panel.add(vslider2);
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);
187 panel.add(vslider3);
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);
195 panel.add(vslider4);
197 vslider5 = new JSlider(JSlider.VERTICAL, 0, 100, 35);
198 vslider5.setInverted(true);
199 panel.add(vslider5);
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);
206 panel.add(vslider6);
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);
214 panel.add(vslider7);
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);
223 panel.add(vslider8);
224 return panel;
227 public void actionPerformed(ActionEvent e)
229 if (e.getActionCommand().equals("CLOSE"))
231 System.exit(0);
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
257 (new Runnable()
259 public void run()
261 SliderDemo app = new SliderDemo();
262 app.initFrameContent();
263 JFrame frame = new JFrame("Slider Demo");
264 frame.getContentPane().add(app);
265 frame.pack();
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();