当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaFX 类 Slider用法及代码示例


滑块是JavaFX中的控件,用于显示连续范围或离散范围的有效数字选择,并允许用户与控件进行交互。滑块用旋钮呈现为垂直或水平条,用户可以滑动以指示所需的值。滑块也可以带有刻度线和标签,以指示沿条的间隔。
滑块的三个基本变量是最小值,最大值和值。该值应始终是在最小值和最大值定义的范围内的数字。最小值应始终小于最大值。最小默认为0,最大默认为100。

该类的构造函数:

  • Slider():创建一个默认的Slider实例。
  • Slider(double min, double max, double value):使用指定的滑块最小值,最大值和当前值构造一个Slider控件。

常用方法:


方法 描述
adjustValue(double newValue) 调整值以匹配newValue。
decrement() 以blockIncrement减值,以最大值为界。
getBlockIncrement() 获取属性blockIncrement的值。
getMax() 获取属性max的值。
getMin() 获取属性min的值。
getMajorTickUnit() 获取属性majorTickUnit的值。
getMinorTickCount() 获取属性minorTickCount的值。
getValue() 获取属性值的值。
increment() 以blockIncrement为单位递增值,以最大值为界。
setBlockIncrement(double value) 设置属性blockIncrement的值。
setMajorTickUnit(double value) 设置属性majorTickUnit的值。
setMax(double value) 设置属性max的值。
setMin(double value) 设置属性min的值。
setMinorTickCount(int value) 设置属性minorTickCount的值。
setValue(double value) 设置属性值的值。
setValueChanging(boolean value) 设置属性valueChanging的值。
setShowTickMarks(boolean value) 设置属性showTickMarks的值。
setShowTickLabels(boolean value) 设置属性showTickLabels的值。
isShowTickLabels() 获取属性showTickLabels的值。
isShowTickMarks() 获取属性showTickMarks的值。

以下示例程序旨在说明Slider类的用法:

  1. 实现Slider类的简单Java程序:在此程序中,我们将创建一个组和场景。将场景添加到框架。然后,创建一个Slider并将其添加到框架。现在启动应用程序。
    // 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); 
        } 
    }

    输出:

  2. 通过使用TickMarks和TickLabels实现Slider类的Java程序:在此程序中,我们将创建一个组和场景。将场景添加到框架。创建具有指定的最小值,最大值和值的滑块。启用标记和标签。用指定的值设置MajorTickUnit。将滑块添加到框架并显示它。
    // 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); 
        } 
    }

    输出:

  3. 使用ChangeListener实现Slider类的Java程序:在此程序中,我们将创建一个Label并设置文本的颜色。创建一个滑块并设置其最小值,最大值和值。启用TickLabels和TickMarks。设置属性blockIncrement的值。 setBlockIncrement()方法定义用户单击轨道时拇指移动的距离。添加ChangeListener,在移动滑块时,亮度变化的值将显示在标签中。创建一个VBox并添加到框架。创建场景并转到框架。最后,启动应用程序。
    // 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); 
        } 
    }

    输出:

注意:以上程序可能无法在在线IDE中运行。请使用离线编译器。

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



相关用法


注:本文由纯净天空筛选整理自chitranayal大神的英文原创作品 JavaFX | Slider Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。