JavaFX | Slider Class

A Slider is a Control in JavaFX which is used to display a continuous or discrete range of valid numeric choices and allows the user to interact with the control. A slider is rendered as a vertical or horizontal bar with a knob that the user can slide to indicate the desired value. A slider can also have tick marks and labels to indicate the intervals along the bar.
The three fundamental variables of the slider are min, max, and value. The value should always be a number within the range defined by min and max. min should always be less than to max. min defaults to 0, whereas max defaults to 100.

Constructors of the class:

  • Slider(): Creates a default Slider instance.
  • Slider(double min, double max, double value): Constructs a Slider control with the specified slider min, max and current value values.

Commonly Used Methods:

Method Description
adjustValue(double newValue) Adjusts value to match newValue.
decrement() Decrements the value by blockIncrement, bounded by max.
getBlockIncrement() Gets the value of the property blockIncrement.
getMax() Gets the value of the property max.
getMin() Gets the value of the property min.
getMajorTickUnit() Gets the value of the property majorTickUnit.
getMinorTickCount() Gets the value of the property minorTickCount.
getValue() Gets the value of the property value.
increment() Increments the value by blockIncrement, bounded by max.
setBlockIncrement(double value) Sets the value of the property blockIncrement.
setMajorTickUnit(double value) Sets the value of the property majorTickUnit.
setMax(double value) Sets the value of the property max.
setMin(double value) Sets the value of the property min.
setMinorTickCount(int value) Sets the value of the property minorTickCount.
setValue(double value) Sets the value of the property value.
setValueChanging(boolean value) Sets the value of the property valueChanging.
setShowTickMarks(boolean value) Sets the value of the property showTickMarks.
setShowTickLabels(boolean value) Sets the value of the property showTickLabels.
isShowTickLabels() Gets the value of the property showTickLabels.
isShowTickMarks() Gets the value of the property showTickMarks.

Below programs illustrate the use of Slider class:

  1. Simple Java program to implement the Slider Class: In this program we will create a group and Scene. Add Scene to the frame. Then, create a Slider and add it to the frame. Now launch the application.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to implement the Slider Class
    import javafx.application.Application;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.control.Slider;
    import javafx.stage.Stage;
      
    public class SliderExample extends Application {
      
        public void start(Stage stage)
        {
      
            // creating group
            Group root = new Group();
            Scene scene = new Scene(root, 600, 400);
      
            // set Scene to the stage
            stage.setScene(scene);
      
            // set title for the frame
            stage.setTitle("Slider Sample");
      
            // create slider
            Slider slider = new Slider();
      
            // add slider to the frame
            root.getChildren().add(slider);
      
            stage.show();
        }
      
        // Main Method
        public static void main(String[] args)
        {
      
            // launch the application
            launch(args);
        }
    }

    chevron_right

    
    

    Output:


  2. Java program to implement Slider class by using TickMarks and TickLabels: In this program we will create a Group and scene. Add the scene to the frame. Create a slider with specified min, max and value. Enable the Marks and Labels. Set MajorTickUnit with the specified value. Add the Slider to the frame and display it.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to implement Slider class
    // by using TickMarks and TickLabels
    import javafx.application.Application;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.control.Slider;
    import javafx.stage.Stage;
      
    public class SliderExample extends Application {
      
        public void start(Stage stage)
        {
            Group root = new Group();
      
            // create a Scene
            Scene scene = new Scene(root, 600, 400);
      
            // add Scene to the frame
            stage.setScene(scene);
      
            // set title of the frame
            stage.setTitle("Slider Sample");
      
            // Creates a slider
            Slider slider = new Slider(0, 1, 0.5);
      
            // enable the marks
            slider.setShowTickMarks(true);
      
            // enable the Labels
            slider.setShowTickLabels(true);
      
            // set Major tick unit
            slider.setMajorTickUnit(0.25f);
      
            // sets the value of the property
            // blockIncrement
            slider.setBlockIncrement(0.1f);
      
            root.getChildren().add(slider);
      
            // display
            stage.show();
        }
      
        // Main Method
        public static void main(String[] args)
        {
      
            // Launch the application
            launch(args);
        }
    }

    chevron_right

    
    

    Output :


  3. Java program to implement Slider Class using ChangeListener: In this program, we will create a Label and set the color for the text. Create a slider and set its min, max and value. Enable TickLabels and TickMarks. Set the value of the property blockIncrement. setBlockIncrement() method defines the distance that the thumb moves when a user clicks on the track. Add ChangeListener, on moving the slider the value of the brightness changes which will show in the label. Create a VBox and add to the frame. Create Scene and to the frame. Finally, launch the application.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to implement Slider Class
    // using ChangeListener
    import javafx.application.Application;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.geometry.Insets;
    import javafx.scene.Scene;
    import javafx.scene.control.Label;
    import javafx.scene.control.Slider;
    import javafx.scene.layout.VBox;
    import javafx.scene.paint.Color;
    import javafx.stage.Stage;
      
    public class SliderExample extends Application {
      
        public void start(Stage stage)
        {
      
            // create label
            Label label = new Label("Select the Brightness");
            Label l = new Label(" ");
      
            // set the color of the tesxt
            l.setTextFill(Color.BLACK);
      
            // create slider
            Slider slider = new Slider();
      
            // set the value of property min,
            // max and value
            slider.setMin(0);
            slider.setMax(100);
            slider.setValue(80);
      
            // enable TickLabels and Tick Marks
            slider.setShowTickLabels(true);
            slider.setShowTickMarks(true);
      
            slider.setBlockIncrement(10);
      
            // Adding Listener to value property.
            slider.valueProperty().addListener(
                 new ChangeListener<Number>() {
      
                public void changed(ObservableValue <? extends Number > 
                          observable, Number oldValue, Number newValue)
                {
      
                    l.setText("value: " + newValue);
                }
            });
      
            // create a VBox
            VBox root = new VBox();
      
            root.setPadding(new Insets(20));
            root.setSpacing(10);
            root.getChildren().addAll(label, slider, l);
      
            stage.setTitle("Slider Sample");
      
            // create Scene and add to the frame
            Scene scene = new Scene(root, 350, 200);
            stage.setScene(scene);
            stage.show();
        }
      
        // Main Method
        public static void main(String[] args)
        {
      
            // Launch Application
            Application.launch(args);
        }
    }

    chevron_right

    
    

    Output:


Note: The above programs might not run in an online IDE. Please use an offline compiler.

Reference: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Slider.html



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.