home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / J A V A / Java Development Kit V1.2 / jdk12-win32(1).exe / data1.cab / demos / demo / jfc / SwingSet / SliderPanel.java < prev    next >
Encoding:
Java Source  |  1998-12-01  |  7.1 KB  |  247 lines

  1. /*
  2.  * @(#)SliderPanel.java    1.15 98/08/26
  3.  *
  4.  * Copyright 1997, 1998 by Sun Microsystems, Inc.,
  5.  * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
  6.  * All rights reserved.
  7.  *
  8.  * This software is the confidential and proprietary information
  9.  * of Sun Microsystems, Inc. ("Confidential Information").  You
  10.  * shall not disclose such Confidential Information and shall use
  11.  * it only in accordance with the terms of the license agreement
  12.  * you entered into with Sun.
  13.  */
  14.  
  15. import javax.swing.*;
  16. import javax.swing.event.*;
  17. import javax.swing.border.*;
  18. import javax.accessibility.*;
  19.  
  20. import java.awt.Panel;
  21. import java.awt.Color;
  22. import java.awt.BorderLayout;
  23. import java.awt.GridLayout;
  24. import java.awt.Font;
  25.  
  26. class SliderListener implements ChangeListener {
  27.     JLabel tf;
  28.     public SliderListener(JLabel f) {
  29.         tf = f;
  30.     }
  31.     
  32.     public void stateChanged(ChangeEvent e) {
  33.         JSlider s1 = (JSlider)e.getSource();
  34.         tf.setText("Slider Value: " + s1.getValue());
  35.     }
  36. }
  37.  
  38. /*
  39.  * @version 1.15 08/26/98
  40.  * @author Dave Kloba
  41.  * @author Peter Korn (accessibility support)
  42.  */
  43. public class SliderPanel extends JPanel      {
  44.     // The Frame
  45.     SwingSet swing;
  46.  
  47.     public SliderPanel(SwingSet swing)    {
  48.         JSlider s;
  49.     JPanel hp;
  50.     JPanel vp;
  51.     GridLayout g;
  52.     JPanel tp;
  53.     JLabel tf;
  54.     ChangeListener listener;
  55.  
  56.         this.swing = swing;
  57.  
  58.     this.setLayout(new BorderLayout());
  59.  
  60.     tf = new JLabel("Slider Value: " );
  61.     this.add(tf, BorderLayout.SOUTH);
  62.     
  63.     tp = new JPanel();
  64.     g = new GridLayout(1, 2);
  65.     g.setHgap(5);
  66.     g.setVgap(5);
  67.     tp.setLayout(g);
  68.     this.add(tp, BorderLayout.CENTER);
  69.         
  70.     listener = new SliderListener(tf);
  71.  
  72.     hp = new JPanel();
  73.     hp.setLayout(new BoxLayout(hp, BoxLayout.Y_AXIS));
  74.     hp.setBorder(new TitledBorder( 
  75.             swing.lightLoweredBorder, 
  76.             "Horizontal",
  77.             TitledBorder.LEFT,
  78.             TitledBorder.ABOVE_TOP));
  79.     tp.add(hp);
  80.  
  81.     vp = new JPanel();
  82.     vp.setLayout(new BoxLayout(vp, BoxLayout.X_AXIS));
  83.     vp.setBorder(new TitledBorder( 
  84.             swing.lightLoweredBorder, 
  85.             "Vertical",
  86.             TitledBorder.LEFT,
  87.             TitledBorder.ABOVE_TOP));
  88.     tp.add(vp);
  89.  
  90.     // Horizontal Slider 1
  91.     JPanel p = new JPanel();
  92.     p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
  93.     p.setBorder(new TitledBorder("Plain"));
  94.     s = new JSlider(-10, 100, 20);
  95.     s.getAccessibleContext().setAccessibleName("Plain");
  96.     s.getAccessibleContext().setAccessibleDescription("A plain slider");
  97.     s.addChangeListener(listener);
  98.  
  99.     p.add(Box.createRigidArea(swing.vpad5));
  100.     p.add(s);
  101.     p.add(Box.createRigidArea(swing.vpad5));
  102.     hp.add(p);
  103.     hp.add(Box.createRigidArea(swing.vpad10));
  104.  
  105.     // Horizontal Slider 2
  106.     p = new JPanel();
  107.     p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
  108.     p.setBorder(new TitledBorder("Major Ticks"));
  109.     s = new JSlider(100, 1000, 400);
  110.     s.setPaintTicks(true);
  111.     s.setMajorTickSpacing(100);
  112.     s.getAccessibleContext().setAccessibleName("Major Ticks");
  113.     s.getAccessibleContext().setAccessibleDescription("A slider showing major tick marks");
  114.     s.addChangeListener(listener);
  115.  
  116.     p.add(Box.createRigidArea(swing.vpad5));
  117.     p.add(s);
  118.     p.add(Box.createRigidArea(swing.vpad5));
  119.     hp.add(p);
  120.     hp.add(Box.createRigidArea(swing.vpad10));
  121.  
  122.     // Horizontal Slider 3
  123.     p = new JPanel();
  124.     p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
  125.     p.setBorder(new TitledBorder("Minor Ticks, Snap-to-ticks and Labels"));
  126.     s = new JSlider(0, 11, 6);
  127.  
  128.     s.putClientProperty( "JSlider.isFilled", Boolean.TRUE );
  129.  
  130.     s.setPaintTicks(true);
  131.     s.setMajorTickSpacing(5);
  132.     s.setMinorTickSpacing(1);
  133.  
  134.     s.setPaintLabels( true );
  135.     s.setSnapToTicks( true );
  136.  
  137.     s.getLabelTable().put( new Integer( 11 ), new JLabel( "11", JLabel.CENTER ) );
  138.     s.setLabelTable( s.getLabelTable() );
  139.  
  140.     s.getAccessibleContext().setAccessibleName("Minor Ticks");
  141.     s.getAccessibleContext().setAccessibleDescription("A slider showing major and minor tick marks, with slider action snapping to tick marks, with some ticks visibly labeled");
  142.  
  143.     s.addChangeListener(listener);
  144.  
  145.     p.add(Box.createRigidArea(swing.vpad5));
  146.     p.add(s);
  147.     p.add(Box.createRigidArea(swing.vpad5));
  148.     hp.add(p);
  149.     hp.add(Box.createRigidArea(swing.vpad10));
  150.  
  151.     // Horizontal Slider 4
  152.     p = new JPanel();
  153.     p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
  154.     p.setBorder(new TitledBorder("Disabled"));
  155.     BoundedRangeModel brm = new DefaultBoundedRangeModel(80, 0, 0, 100);
  156.       // s = new JSlider(JSlider.HORIZONTAL, 0, 100, 80);
  157.     s = new JSlider(brm);
  158.     s.setPaintTicks(true);
  159.     s.setMajorTickSpacing(20);
  160.     s.setMinorTickSpacing(5);
  161.     s.setEnabled(false);
  162.     s.getAccessibleContext().setAccessibleName("Disabled");
  163.     s.getAccessibleContext().setAccessibleDescription("A slider showing major and minor tick marks that is not enabled (cannot be manipulated)");
  164.     s.addChangeListener(listener);
  165.  
  166.     p.add(Box.createRigidArea(swing.vpad5));
  167.     p.add(s);
  168.     p.add(Box.createRigidArea(swing.vpad5));
  169.     hp.add(p);
  170.     
  171. //////////////////////////////////////////////////////////////////////////////
  172.  
  173.     // Vertical Slider 1
  174.     p = new JPanel();
  175.     p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
  176.     p.setBorder(new TitledBorder("Plain"));
  177.     s = new JSlider(JSlider.VERTICAL, -10, 100, 20);
  178.     s.getAccessibleContext().setAccessibleName("Plain");
  179.     s.getAccessibleContext().setAccessibleDescription("A plain slider");
  180.     s.addChangeListener(listener);
  181.     p.add(Box.createRigidArea(swing.hpad10));
  182.     p.add(s);
  183.     p.add(Box.createRigidArea(swing.hpad10));
  184.     vp.add(p);
  185.     vp.add(Box.createRigidArea(swing.hpad5));
  186.  
  187.     // Vertical Slider 2
  188.     p = new JPanel();
  189.     p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
  190.     p.setBorder(new TitledBorder("Major Ticks"));
  191.     s = new JSlider(JSlider.VERTICAL, 100, 1000, 400);
  192.  
  193.     s.putClientProperty( "JSlider.isFilled", Boolean.TRUE );
  194.  
  195.     s.setPaintTicks(true);
  196.     s.setMajorTickSpacing(100);
  197.     s.getAccessibleContext().setAccessibleName("Major Ticks");
  198.     s.getAccessibleContext().setAccessibleDescription("A slider showing major tick marks");
  199.     s.addChangeListener(listener);
  200.     p.add(Box.createRigidArea(swing.hpad25));
  201.     p.add(s);
  202.     p.add(Box.createRigidArea(swing.hpad25));
  203.     vp.add(p);
  204.     vp.add(Box.createRigidArea(swing.hpad5));
  205.  
  206.     // Vertical Slider 3
  207.     p = new JPanel();
  208.     p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
  209.     p.setBorder(new TitledBorder("Minor Ticks"));
  210.     s = new JSlider(JSlider.VERTICAL, 0, 100, 60);
  211.     s.setPaintTicks(true);
  212.     s.setMajorTickSpacing(20);
  213.     s.setMinorTickSpacing(5);
  214.  
  215.     s.setPaintLabels( true );
  216.  
  217.     s.getAccessibleContext().setAccessibleName("Minor Ticks");
  218.     s.getAccessibleContext().setAccessibleDescription("A slider showing major and minor tick marks, with slider action snapping to tick marks, with some ticks visibly labeled");
  219.  
  220.     s.addChangeListener(listener);
  221.     p.add(Box.createRigidArea(swing.hpad10));
  222.     p.add(s);
  223.     p.add(Box.createRigidArea(swing.hpad10));
  224.     vp.add(p);
  225.     vp.add(Box.createRigidArea(swing.hpad5));
  226.  
  227.     // Vertical Slider 4
  228.     p = new JPanel();
  229.     p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
  230.     p.setBorder(new TitledBorder("Disabled"));
  231.     s = new JSlider(JSlider.VERTICAL, 0, 100, 80);
  232.     s.setPaintTicks(true);
  233.     s.setMajorTickSpacing(20);
  234.     s.setMinorTickSpacing(5);
  235.     s.setEnabled(false);
  236.     s.getAccessibleContext().setAccessibleName("Disabled");
  237.     s.getAccessibleContext().setAccessibleDescription("A slider showing major and minor tick marks that is not enabled (cannot be manipulated)");
  238.     s.addChangeListener(listener);
  239.     p.add(Box.createRigidArea(swing.hpad20));
  240.     p.add(s);
  241.     p.add(Box.createRigidArea(swing.hpad20));
  242.     vp.add(p);
  243.     }
  244. }
  245.  
  246.  
  247.