ScrollBar类经常带有一个可滚动的窗格。
滚动条有四个区域:

  • 拇指
  • 右按钮或向下按钮
  • 左按钮或向上按钮
  • 跟踪

    创建滚动条

    以下代码使用其默认构造函数创建滚动条。
    1. ScrollBar sc = new ScrollBar();
    setMin()和setMax()方法定义滚动条表示的最小值和最大值。setValue()方法设置滚动的当前值,也设置拇指的位置。
    1. sc.setMin(0);
    2. sc.setMax(100);
    3. sc.setValue(50);
    当用户移动缩略图时,滚动条的值会更改。默认情况下,滚动条水平定向。我们可以使用setOrientation()方法设置垂直方向。
    我们可以单击水平滚动条的左和右按钮或者向上和向下按钮,垂直滚动条以单位增量滚动。 UNIT_INCREMENT属性设置此值。
    单击轨道可使滚动条移动块增量。BLOCK_INCREMENT属性定义此值。
  1. import javafx.application.Application;
  2. import javafx.geometry.Orientation;
  3. import javafx.scene.Group;
  4. import javafx.scene.Scene;
  5. import javafx.scene.control.ScrollBar;
  6. import javafx.stage.Stage;
  7. public class Main extends Application {
  8. @Override
  9. public void start(Stage stage) {
  10. Group root = new Group();
  11. root.setLayoutX(250);
  12. root.setLayoutY(50);
  13. Scene scene = new Scene(root, 500, 200);
  14. stage.setScene(scene);
  15. ScrollBar s1 = new ScrollBar();
  16. s1.setMax(500);
  17. s1.setMin(0);
  18. s1.setValue(100);
  19. s1.setUnitIncrement(30);
  20. s1.setBlockIncrement(35);
  21. s1.setOrientation(Orientation.VERTICAL);
  22. root.getChildren().add(s1);
  23. stage.show();
  24. }
  25. public static void main(String[] args) {
  26. launch(args);
  27. }
  28. }

image.png

滚动事件

以下代码为滚动事件从滚动条添加事件处理程序。

  1. import javafx.application.Application;
  2. import javafx.beans.value.ObservableValue;
  3. import javafx.scene.Group;
  4. import javafx.scene.Scene;
  5. import javafx.scene.control.ScrollBar;
  6. import javafx.stage.Stage;
  7. public class Main extends Application {
  8. @Override
  9. public void start(Stage stage) {
  10. Group root = new Group();
  11. Scene scene = new Scene(root, 500, 200);
  12. stage.setScene(scene);
  13. ScrollBar s1 = new ScrollBar();
  14. s1.valueProperty().addListener((ObservableValue<? extends Number> ov,
  15. Number old_val, Number new_val) -> {
  16. System.out.println(-new_val.doubleValue());
  17. });
  18. root.getChildren().add(s1);
  19. stage.show();
  20. }
  21. public static void main(String[] args) {
  22. launch(args);
  23. }
  24. }

image.png