JavaFX滑块

时间:2020-01-09 10:36:40  来源:igfitidea点击:

JavaFX Slider控件为用户提供了一种在给定时间间隔内通过将手柄滑动到代表所需值的所需点来选择值的方法。 JavaFX Slider由JavaFX类javafx.scene.control.Slider表示。这是JavaFXSlider外观的屏幕截图:

JavaFX Slider示例

这是完整的JavaFXSlider代码示例:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Slider;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class SliderExample extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("JavaFX App");

        Slider slider = new Slider(0, 100, 0);

        VBox vBox = new VBox(slider);
        Scene scene = new Scene(vBox, 960, 600);

        primaryStage.setScene(scene);
        primaryStage.show();
    }

}

创建一个滑块

要使用JavaFXSlider,我们必须首先创建Slider类的实例。这是创建JavaFXSlider实例的示例:

Slider slider = new Slider(0, 100, 0);

上面使用的" Slider"构造函数采用三个参数:最小值,最大值和初始值。最小值是将手柄一直向左滑动的值。这是用户可以选择一个值的时间间隔的开始。最大值是一直向右滑动手柄所代表的值。这是间隔的结束,用户可以其中选择一个值。初始值是在第一次显示给用户时手柄应位于的值。

读取滑块值

我们可以通过getValue()方法读取用户选择的Slider的值。这是读取JavaFXSlider的选定值的示例:

double value = slider.getValue();

大刻度线单位

我们可以设置JavaFXSlider控件的主要刻度单位。主要刻度单位是用户每次将"滑块"的手柄移动一个刻度时,值会更改多少个单位。这是一个将JavaFXSlider的主要刻度单位设置为8的示例:

Slider slider = new Slider(0, 100, 0);

slider.setMajorTickUnit(8.0);

每当" Slider"中的手柄移动时,此" Slider"的值将随着8.0上下变化。

小刻度计数

我们可以通过setMinorTickCount()方法设置JavaFX Slider的次要滴答计数。次要滴答计数指定两个主要滴答之间有多少个次要滴答。这是将次要滴答计数设置为2的示例:

Slider slider = new Slider(0, 100, 0);

slider.setMajorTickUnit(8.0);

slider.setMinorTickCount(3);

此处配置的"滑块"在每个主要刻度之间有8.0个值单位,并且在每个主要刻度之间有3个次要刻度。

将Snap句柄附加到Ticks

我们可以使用Slider``setSnapToTicks()方法,将JavaFXSlider的句柄捕捉到刻度线,并传递参数值true。这是使JavaFXSlider对齐其刻度的示例:

slider.setSnapToTicks(true);

显示刻度线

我们可以使JavaFX Slider呈现滑块时在刻度线上显示标记。我们可以使用其setShowTickMarks()方法进行操作。这是使JavaFXSlider显示刻度的示例:

slider.setShowTickMarks(true);

这是一个JavaFXSlider的屏幕截图,带有刻度线:

显示刻度标签

我们可以使JavaFXSlider在渲染滑块时显示刻度线的刻度线标签。我们可以使用其setShowTickLabels()方法进行操作。这是使JavaFXSlider显示刻度标记的示例:

slider.setShowTickLabels(true);