| /* ScrollBarDemo.java -- An example showing scroll bars in Swing. |
| Copyright (C) 2005, 2006, Free Software Foundation, Inc. |
| |
| This file is part of GNU Classpath examples. |
| |
| GNU Classpath is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 2, or (at your option) |
| any later version. |
| |
| GNU Classpath is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with GNU Classpath; see the file COPYING. If not, write to the |
| Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
| 02110-1301 USA. |
| */ |
| |
| |
| package gnu.classpath.examples.swing; |
| |
| import java.awt.BorderLayout; |
| import java.awt.GridLayout; |
| import java.awt.event.ActionEvent; |
| import java.awt.event.ActionListener; |
| |
| import javax.swing.JButton; |
| import javax.swing.JComponent; |
| import javax.swing.JFrame; |
| import javax.swing.JPanel; |
| import javax.swing.JScrollBar; |
| import javax.swing.SwingUtilities; |
| |
| /** |
| * A simple scroll bar demo showing various scroll bars in different states. |
| */ |
| public class ScrollBarDemo |
| extends JPanel |
| implements ActionListener |
| { |
| |
| /** |
| * Creates a new demo instance. |
| */ |
| public ScrollBarDemo() |
| { |
| super(); |
| createContent(); |
| } |
| |
| /** |
| * When the demo is run independently, the frame is displayed, so we should |
| * initialise the content panel (including the demo content and a close |
| * button). But when the demo is run as part of the Swing activity board, |
| * only the demo content panel is used, the frame itself is never displayed, |
| * so we can avoid this step. |
| */ |
| void initFrameContent() |
| { |
| JPanel closePanel = new JPanel(); |
| JButton closeButton = new JButton("Close"); |
| closeButton.setActionCommand("CLOSE"); |
| closeButton.addActionListener(this); |
| closePanel.add(closeButton); |
| add(closePanel, BorderLayout.SOUTH); |
| } |
| |
| /** |
| * Returns a panel with the demo content. The panel |
| * uses a BorderLayout(), and the BorderLayout.SOUTH area |
| * is empty, to allow callers to add controls to the |
| * bottom of the panel if they want to (a close button is |
| * added if this demo is being run as a standalone demo). |
| */ |
| private void createContent() |
| { |
| setLayout(new BorderLayout()); |
| JPanel panel = createScrollBarPanel(); |
| add(panel); |
| } |
| |
| private JPanel createScrollBarPanel() |
| { |
| JPanel panel = new JPanel(new BorderLayout()); |
| |
| JPanel horizontalPanel = new JPanel(); |
| |
| JScrollBar scroll1a = new JScrollBar(JScrollBar.HORIZONTAL); |
| JScrollBar scroll1b = new JScrollBar(JScrollBar.HORIZONTAL); |
| scroll1b.setEnabled(false); |
| JScrollBar scroll1c = new JScrollBar(JScrollBar.HORIZONTAL); |
| scroll1c.putClientProperty("JScrollBar.isFreeStanding", Boolean.FALSE); |
| JScrollBar scroll1d = new JScrollBar(JScrollBar.HORIZONTAL); |
| scroll1d.putClientProperty("JScrollBar.isFreeStanding", Boolean.FALSE); |
| scroll1d.setEnabled(false); |
| horizontalPanel.add(scroll1a); |
| horizontalPanel.add(scroll1b); |
| horizontalPanel.add(scroll1c); |
| horizontalPanel.add(scroll1d); |
| |
| panel.add(horizontalPanel, BorderLayout.NORTH); |
| |
| JPanel verticalPanel = new JPanel(); |
| verticalPanel.setLayout(new GridLayout(1, 7)); |
| |
| JScrollBar scroll2a = new JScrollBar(JScrollBar.VERTICAL); |
| JScrollBar scroll2b = new JScrollBar(JScrollBar.VERTICAL); |
| scroll2b.setEnabled(false); |
| JScrollBar scroll2c = new JScrollBar(JScrollBar.VERTICAL); |
| scroll2c.putClientProperty("JScrollBar.isFreeStanding", Boolean.FALSE); |
| JScrollBar scroll2d = new JScrollBar(JScrollBar.VERTICAL); |
| scroll2d.setEnabled(false); |
| scroll2d.putClientProperty("JScrollBar.isFreeStanding", Boolean.FALSE); |
| |
| verticalPanel.add(scroll2a); |
| verticalPanel.add(new JPanel()); |
| verticalPanel.add(scroll2b); |
| verticalPanel.add(new JPanel()); |
| verticalPanel.add(scroll2c); |
| verticalPanel.add(new JPanel()); |
| verticalPanel.add(scroll2d); |
| |
| panel.add(verticalPanel, BorderLayout.EAST); |
| |
| JPanel centerPanel = new JPanel(new GridLayout(1, 2)); |
| centerPanel.add(new JScrollBar(JScrollBar.HORIZONTAL)); |
| centerPanel.add(new JScrollBar(JScrollBar.VERTICAL)); |
| panel.add(centerPanel); |
| return panel; |
| } |
| |
| public void actionPerformed(ActionEvent e) |
| { |
| if (e.getActionCommand().equals("CLOSE")) |
| { |
| System.exit(0); |
| } |
| } |
| |
| public static void main(String[] args) |
| { |
| SwingUtilities.invokeLater |
| (new Runnable() |
| { |
| public void run() |
| { |
| ScrollBarDemo app = new ScrollBarDemo(); |
| app.initFrameContent(); |
| JFrame frame = new JFrame("ScrollBar Demo"); |
| frame.getContentPane().add(app); |
| frame.pack(); |
| frame.setVisible(true); |
| }}); |
| } |
| |
| /** |
| * Returns a DemoFactory that creates a ScrollBarDemo. |
| * |
| * @return a DemoFactory that creates a ScrollBarDemo |
| */ |
| public static DemoFactory createDemoFactory() |
| { |
| return new DemoFactory() |
| { |
| public JComponent createDemo() |
| { |
| return new ScrollBarDemo(); |
| } |
| }; |
| } |
| } |