OSDN Git Service

2013.10.24
[uclinux-h8/uClinux-dist.git] / lib / classpath / examples / gnu / classpath / examples / swing / SliderDemo.java
1 /* SliderDemo.java -- An example showing JSlider in various configurations.
2    Copyright (C) 2005, 2006,  Free Software Foundation, Inc.
3
4 This file is part of GNU Classpath examples.
5
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.
10
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.
15
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.
20 */
21
22
23 package gnu.classpath.examples.swing;
24
25 import java.awt.BorderLayout;
26 import java.awt.GridLayout;
27 import java.awt.event.ActionEvent;
28 import java.awt.event.ActionListener;
29
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;
37
38 public class SliderDemo
39   extends JPanel
40   implements ActionListener 
41 {
42
43   JSlider hslider1;
44   JSlider hslider2;
45   JSlider hslider3;
46   JSlider hslider4;
47   JSlider hslider5;
48   JSlider hslider6;
49   JSlider hslider7;
50   JSlider hslider8;
51   
52   JSlider vslider1;
53   JSlider vslider2;
54   JSlider vslider3;
55   JSlider vslider4;
56   JSlider vslider5;
57   JSlider vslider6;
58   JSlider vslider7;
59   JSlider vslider8;
60
61   JCheckBox enabledCheckBox;
62   
63   public SliderDemo() 
64   {
65     createContent();
66   }
67   
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.
74    */
75   void initFrameContent()
76   {
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);
83   }
84        
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() 
93   {
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);
108   }
109     
110   private JPanel createHorizontalPanel() 
111   {
112     JPanel panel = new JPanel(new GridLayout(8, 1));
113   
114     hslider1 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35);
115     panel.add(hslider1);
116         
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);
122
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);
129
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);
137
138     hslider5 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35);
139     hslider5.setInverted(true);
140     panel.add(hslider5);
141         
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);
148
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);
156
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);
165
166     return panel;
167   }
168     
169   private JPanel createVerticalPanel() 
170   {
171     JPanel panel = new JPanel(new GridLayout(1, 8));
172   
173     vslider1 = new JSlider(JSlider.VERTICAL, 0, 100, 35);
174     panel.add(vslider1);
175         
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);
181
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);
188
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);
196
197     vslider5 = new JSlider(JSlider.VERTICAL, 0, 100, 35);
198     vslider5.setInverted(true);
199     panel.add(vslider5);
200         
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);
207
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);
215
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;
225   }
226     
227   public void actionPerformed(ActionEvent e) 
228   {
229     if (e.getActionCommand().equals("CLOSE"))
230     {
231       System.exit(0);
232     }
233     else if (e.getActionCommand().equals("TOGGLE_ENABLED"))
234     {
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);
252     }
253   }
254   public static void main(String[] args) 
255   {
256     SwingUtilities.invokeLater
257     (new Runnable()
258      {
259        public void run()
260        {
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);
267        }
268      });
269   }
270
271
272   /**
273    * Returns a DemoFactory that creates a SliderDemo.
274    *
275    * @return a DemoFactory that creates a SliderDemo
276    */
277   public static DemoFactory createDemoFactory()
278   {
279     return new DemoFactory()
280     {
281       public JComponent createDemo()
282       {
283         return new SliderDemo();
284       }
285     };
286   }
287 }