滑块是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类的用法:
- 实现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); } }
输出:
- 通过使用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); } }
输出:
- 使用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
相关用法
- JavaFX 类 Pos用法及代码示例
- JavaFX 类 Tab用法及代码示例
- JavaFX 类 LineTo用法及代码示例
- JavaFX 类 VLineTo用法及代码示例
- JavaFX 类 HLineTo用法及代码示例
- JavaFX 类 VBox用法及代码示例
- JavaFX 类 HBox用法及代码示例
- JavaFX 类 ToolBar用法及代码示例
- JavaFX 类 PieChart用法及代码示例
- JavaFX 类 Hyperlink用法及代码示例
- JavaFX 类 Point3D用法及代码示例
- JavaFX 类 WebView用法及代码示例
- JavaFX 类 ClosePath用法及代码示例
- JavaFX 类 Background用法及代码示例
- JavaFX 类 TitledPane用法及代码示例
注:本文由纯净天空筛选整理自chitranayal大神的英文原创作品 JavaFX | Slider Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。