📜  JavaFX |滑块类(1)

📅  最后修改于: 2023-12-03 14:42:22.543000             🧑  作者: Mango

JavaFX | 滑块类

JavaFX中,滑块(Slider)是一种常用的UI控件,它允许用户从预定义的值范围中选择一个值。本篇文章将对JavaFX中的滑块类做介绍。

滑块类的构造方法
public Slider()
创建一个没有最小值和最大值限制的滑块。

public Slider(double minValue, double maxValue, double value)
创建一个指定最小最大值的滑块,并设置value参数作为默认值。

public Slider(double minValue, double maxValue, double value)
创建一个指定最小最大值以及滑块的长度(单位为pixels)的滑块,并设置value参数作为默认值。
滑块属性

JavaFX中,滑块类有很多属性可以用来控制其行为和外观。下面列出了一些常用的滑块属性:

  • value:表示滑块当前的值。
  • min:表示滑块的最小值。
  • max:表示滑块的最大值。
  • blockIncrement:表示滑块每次拖动时移动的步长。
  • showTickLabels:当设置为true时,滑块将显示与主、次标记关联的数字。
  • showTickMarks:当设置为true时,滑块将显示主、次滑块标记。
  • snapToTicks:当设置为true时,计算滑块当前值时会将其舍入到最近的主标记。
滑块事件

JavaFX中,滑块类提供了几个事件,可以使用它们来处理滑块值的更改。

  • onChanged:当此属性的值更改时调用。
  • onDragDetected:当滑块的拖动被检测到时调用。
  • onDragDone:当拖动操作完成时调用。
  • onDragEntered:当鼠标进入滑块拖动区域时调用。
  • onDragExited:当鼠标离开滑块拖动区域时调用。
  • onDragOver:当滑块被拖动时调用。
  • onDragReleased:当拖动操作被释放时调用。
滑块示例

下面是一个简单的使用滑块类的JavaFX应用程序。

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Slider;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class SliderDemo extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        // 创建滑块和文本对象
        Slider slider = new Slider(0, 100, 50);
        Text text = new Text("当前值:" + slider.getValue());

        // 将文本对象和滑块放入VBox中
        VBox vBox = new VBox();
        vBox.setPadding(new Insets(20));
        vBox.setSpacing(10);
        vBox.getChildren().addAll(text, slider);

        // 添加滑块值更改事件
        slider.valueProperty().addListener((observable, oldValue, newValue) -> {
            text.setText("当前值:" + newValue);
        });

        // 设置场景并显示
        StackPane root = new StackPane();
        root.getChildren().add(vBox);
        Scene scene = new Scene(root, 300, 250);
        primaryStage.setTitle("JavaFX滑块示例");
        primaryStage.setScene(scene);
        primaryStage.show();    
    }

    public static void main(String[] args) {
        launch(args);
    }
}

上述代码创建了一个最小值为0,最大值为100,初始值为50的滑块,并在滑块上添加了一个值更改事件。当滑块的值更改时,文本对象将显示滑块的当前值。

总结

本篇文章介绍了JavaFX中的滑块类,并提供了一些示例代码来帮助读者了解如何使用滑块类。滑块类是JavaFX中最常用的UI控件之一,它非常适合用于需要从预定义值范围中选择一个值的场景。