Sliders

Sliders allow a user to interactively select one of a range of values by dragging the mouse. The following example demonstrates the use of the Slider component. It allows the user to select a value from 0 - 255 and displays the value in a Label component:

The BXML source for the example is as follows:

            
            <boundedrange:Sliders title="Sliders" maximized="true"
                xmlns:bxml="http://pivot.apache.org/bxml"
                xmlns:boundedrange="org.apache.pivot.tutorials.boundedrange"
                xmlns="org.apache.pivot.wtk">
                <BoxPane styles="{verticalAlignment:'center'}">
                    <Slider bxml:id="slider" range="{start:0, end:255}" value="0"/>
                    <Label bxml:id="label"/>
                </BoxPane>
            </boundedrange:Sliders>
            
        

The Java source loads the BXML and attaches a SliderValueListener to the slider. When the slider value changes, the updateLabel() method is called to set the current value:

            
            package org.apache.pivot.tutorials.boundedrange;

            import java.net.URL;

            import org.apache.pivot.beans.Bindable;
            import org.apache.pivot.collections.Map;
            import org.apache.pivot.util.Resources;
            import org.apache.pivot.wtk.Label;
            import org.apache.pivot.wtk.Slider;
            import org.apache.pivot.wtk.SliderValueListener;
            import org.apache.pivot.wtk.Window;

            public class Sliders extends Window implements Bindable {
                private Slider slider = null;
                private Label label = null;

                @Override
                public void initialize(Map<String, Object> namespace, URL location, Resources resources) {
                    slider = (Slider)namespace.get("slider");
                    label = (Label)namespace.get("label");

                    slider.getSliderValueListeners().add(new SliderValueListener() {
                        @Override
                        public void valueChanged(Slider slider, int previousValue) {
                            updateLabel();
                        }
                    });

                    updateLabel();
                }

                private void updateLabel() {
                    label.setText(Integer.toString(slider.getValue()));
                }
            }
            
        

Next: Scroll Bars