FileDocCategorySizeDatePackage
SliderPanel.javaAPI DocExample7632Sat Sep 12 03:01:00 BST 1998None

SliderPanel.java

/*
 * @(#)SliderPanel.java	1.12 98/02/02
 *
 * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
 *
 * This software is the confidential and proprietary information of Sun
 * Microsystems, Inc. ("Confidential Information").  You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Sun.
 *
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
 * THIS SOFTWARE OR ITS DERIVATIVES.
 *
 */

import com.sun.java.swing.*;
import com.sun.java.swing.event.*;
import com.sun.java.swing.border.*;
import com.sun.java.accessibility.*;

import java.awt.Panel;
import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Font;

class SliderListener implements ChangeListener {
	JLabel tf;
	public SliderListener(JLabel f) {
	    tf = f;
	}
	
	public void stateChanged(ChangeEvent e) {
	    JSlider s1 = (JSlider)e.getSource();
		tf.setText("Slider Value: " + s1.getValue());
	}
}

/*
 * @version 1.12 02/02/98
 * @author Dave Kloba
 * @author Peter Korn (accessibility support)
 */
public class SliderPanel extends JPanel      {
    // The Frame
    SwingSet swing;

    public SliderPanel(SwingSet swing)    {
        JSlider s;
	JPanel hp;
	JPanel vp;
	GridLayout g;
	JPanel tp;
	JLabel tf;
	ChangeListener listener;

        this.swing = swing;

	this.setLayout(new BorderLayout());

	tf = new JLabel("Slider Value: " );
	this.add(tf, BorderLayout.SOUTH);
	
	tp = new JPanel();
	g = new GridLayout(1, 2);
	g.setHgap(5);
	g.setVgap(5);
	tp.setLayout(g);
	this.add(tp, BorderLayout.CENTER);
		
	listener = new SliderListener(tf);

	hp = new JPanel();
	hp.setLayout(new BoxLayout(hp, BoxLayout.Y_AXIS));
	hp.setBorder(new TitledBorder( 
			swing.lightLoweredBorder, 
			"Horizontal",
			TitledBorder.LEFT,
			TitledBorder.ABOVE_TOP));
	tp.add(hp);

	vp = new JPanel();
	vp.setLayout(new BoxLayout(vp, BoxLayout.X_AXIS));
	vp.setBorder(new TitledBorder( 
			swing.lightLoweredBorder, 
			"Vertical",
			TitledBorder.LEFT,
			TitledBorder.ABOVE_TOP));
	tp.add(vp);

	// Horizontal Slider 1
	JPanel p = new JPanel();
	p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
	p.setBorder(new TitledBorder("Plain"));
	s = new JSlider(JSlider.HORIZONTAL, -10, 100, 20);
	s.getAccessibleContext().setAccessibleName("Plain");
	s.getAccessibleContext().setAccessibleDescription("A plain slider");
	s.addChangeListener(listener);

	p.add(Box.createRigidArea(swing.vpad5));
	p.add(s);
	p.add(Box.createRigidArea(swing.vpad5));
	hp.add(p);
	hp.add(Box.createRigidArea(swing.vpad10));

	// Horizontal Slider 2
	p = new JPanel();
	p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
	p.setBorder(new TitledBorder("Major Ticks"));
	s = new JSlider(JSlider.HORIZONTAL, 100, 1000, 400);
	s.setPaintTicks(true);
	s.setMajorTickSpacing(100);
	s.getAccessibleContext().setAccessibleName("Major Ticks");
	s.getAccessibleContext().setAccessibleDescription("A slider showing major tick marks");
	s.addChangeListener(listener);

	p.add(Box.createRigidArea(swing.vpad5));
	p.add(s);
	p.add(Box.createRigidArea(swing.vpad5));
	hp.add(p);
	hp.add(Box.createRigidArea(swing.vpad10));

	// Horizontal Slider 3
	p = new JPanel();
	p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
	p.setBorder(new TitledBorder("Minor Ticks, Snap-to-ticks and Labels"));
	s = new JSlider(JSlider.HORIZONTAL, 0, 11, 6);

	s.putClientProperty( "JSlider.isFilled", Boolean.TRUE );

	s.setPaintTicks(true);
	s.setMajorTickSpacing(5);
	s.setMinorTickSpacing(1);

	s.setPaintLabels( true );
	s.setSnapToTicks( true );

	s.getLabelTable().put( new Integer( 11 ), new JLabel( "11", JLabel.CENTER ) );
	s.setLabelTable( s.getLabelTable() );

	s.getAccessibleContext().setAccessibleName("Minor Ticks");
	s.getAccessibleContext().setAccessibleDescription("A slider showing major and minor tick marks, with slider action snapping to tick marks, with some ticks visibly labeled");

	s.addChangeListener(listener);

	p.add(Box.createRigidArea(swing.vpad5));
	p.add(s);
	p.add(Box.createRigidArea(swing.vpad5));
	hp.add(p);
	hp.add(Box.createRigidArea(swing.vpad10));

	// Horizontal Slider 4
	p = new JPanel();
	p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
	p.setBorder(new TitledBorder("Disabled"));
	s = new JSlider(JSlider.HORIZONTAL, 0, 100, 80);
	s.setPaintTicks(true);
	s.setMajorTickSpacing(20);
	s.setMinorTickSpacing(5);
	s.setEnabled(false);
	s.getAccessibleContext().setAccessibleName("Disabled");
	s.getAccessibleContext().setAccessibleDescription("A slider showing major and minor tick marks that is not enabled (cannot be manipulated)");
	s.addChangeListener(listener);

	p.add(Box.createRigidArea(swing.vpad5));
	p.add(s);
	p.add(Box.createRigidArea(swing.vpad5));
	hp.add(p);
	
//////////////////////////////////////////////////////////////////////////////

	// Vertical Slider 1
	p = new JPanel();
	p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
	p.setBorder(new TitledBorder("Plain"));
	s = new JSlider(JSlider.VERTICAL, -10, 100, 20);
	s.getAccessibleContext().setAccessibleName("Plain");
	s.getAccessibleContext().setAccessibleDescription("A plain slider");
	s.addChangeListener(listener);
	p.add(Box.createRigidArea(swing.hpad10));
	p.add(s);
	p.add(Box.createRigidArea(swing.hpad10));
	vp.add(p);
	vp.add(Box.createRigidArea(swing.hpad5));

	// Vertical Slider 2
	p = new JPanel();
	p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
	p.setBorder(new TitledBorder("Major Ticks"));
	s = new JSlider(JSlider.VERTICAL, 100, 1000, 400);

	s.putClientProperty( "JSlider.isFilled", Boolean.TRUE );

	s.setPaintTicks(true);
	s.setMajorTickSpacing(100);
	s.getAccessibleContext().setAccessibleName("Major Ticks");
	s.getAccessibleContext().setAccessibleDescription("A slider showing major tick marks");
	s.addChangeListener(listener);
	p.add(Box.createRigidArea(swing.hpad25));
	p.add(s);
	p.add(Box.createRigidArea(swing.hpad25));
	vp.add(p);
	vp.add(Box.createRigidArea(swing.hpad5));

	// Vertical Slider 3
	p = new JPanel();
	p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
	p.setBorder(new TitledBorder("Minor Ticks"));
	s = new JSlider(JSlider.VERTICAL, 0, 100, 60);
	s.setPaintTicks(true);
	s.setMajorTickSpacing(20);
	s.setMinorTickSpacing(5);

	s.setPaintLabels( true );

	s.getAccessibleContext().setAccessibleName("Minor Ticks");
	s.getAccessibleContext().setAccessibleDescription("A slider showing major and minor tick marks, with slider action snapping to tick marks, with some ticks visibly labeled");

	s.addChangeListener(listener);
	p.add(Box.createRigidArea(swing.hpad10));
	p.add(s);
	p.add(Box.createRigidArea(swing.hpad10));
	vp.add(p);
	vp.add(Box.createRigidArea(swing.hpad5));

	// Vertical Slider 4
	p = new JPanel();
	p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
	p.setBorder(new TitledBorder("Disabled"));
	s = new JSlider(JSlider.VERTICAL, 0, 100, 80);
	s.setPaintTicks(true);
	s.setMajorTickSpacing(20);
	s.setMinorTickSpacing(5);
	s.setEnabled(false);
	s.getAccessibleContext().setAccessibleName("Disabled");
	s.getAccessibleContext().setAccessibleDescription("A slider showing major and minor tick marks that is not enabled (cannot be manipulated)");
	s.addChangeListener(listener);
	p.add(Box.createRigidArea(swing.hpad20));
	p.add(s);
	p.add(Box.createRigidArea(swing.hpad20));
	vp.add(p);
    }
}