ScrollPane

JavaFX ScrollPane 控件是一个容器,如果组件大于 ScrollPane 的可见区域,则该容器在其包含的组件周围有两个滚动条。滚动条使用户能够滚动 ScrollPane 中显示的组件,从而可以看到组件的不同部分。JavaFX ScrollPane 控件由 JavaFX 类 javafx.scene.control.ScrollPane 构建。下面是一个 JavaFX ScrollPane 的屏幕截图,内置 JavaFX ImageView 的一个示例:

图片.png

创建一个 ScrollPane

ScrollPane scrollPane = new ScrollPane();

设置 ScrollPane 内容组件

ScrollPane scrollPane = new ScrollPane();

String imagePath = "images/aerial-beverage-caffeine-972533.jpg";
ImageView imageView = new ImageView(new Image(new FileInputStream(imagePath)));

scrollPane.setContent(imageView);

ScrollPane Viewport

JavaFX ScrollPane 的可见部分称为 ScrollPane viewport。当您使用滚动条滚动 ScrollPane 中显示的内容时,viewport 也会在内容周围移动,使内容的不同部分可见。

内容的特效与变换

如果要在 JavaFX ScrollPane 中显示的内容(JavaFX 控件)使用特效或变换,则必须首先将这些控件包装到 JavaFX Group 中。否则内容将无法正确显示。

ScrollPane的Pannable模式

默认情况下,用户只能使用滚动条在 JavaFX ScrollPane 中显示的内容周围导航。但是,可以使 JavaFX ScrollPane的Pannable模式。ScrollPane Pannable 模式允许用户通过按住鼠标左键并移动鼠标来导航其内容。这将有相同的效果使用滚动条。但是,使用平移可以同时沿 x 轴和 y 轴移动内容。使用滚动条是不可能的,因为用户一次只能操作一个滚动条。

若要将 JavaFX ScrollPane 切换到 pannable 模式,必须将其 pannableProperty 设置为值 true。下面是一个将 JavaFX ScrollPane 切换到pannable模式的例子:

scrollPane.pannableProperty().set(true);

宽度适应

JavaFX ScrollPane fitToWidth 属性可以使 ScrollPane 将其内容适配到 ScrollPane 视窗的宽度。为此,fitToWidth 属性必须设置为值 true。如果内容节点不可调整大小,则忽略此属性。下面是一个将 JavaFX ScrollPane fitToWidth 属性设置为 true 的示例:

scrollPane.fitToWidthProperty().set(true);

适合高度

JavaFX ScrollPane fitToHeight 属性可以使 ScrollPane 将其内容适配到 ScrollPane 视窗的高度。为此,必须将 fitToHeight 属性设置为值 true。如果内容节点不可调整大小,则忽略此属性。下面是一个将 JavaFX ScrollPane fitToHeight 属性设置为 true 的示例:

scrollPane.fitToHeightProperty().set(true);

通过滚动条策略显示和隐藏滚动条

可以指定 JavaFX ScrollPane 何时显示垂直和水平滚动条。您可以通过 ScrollPane hbarPolicyProperty 和 vbarPolicyProperty 属性来实现。可以将这些属性设置为 ScrollPane 之一。值。你可以从 ALWAYS,AS_NEEDED 和 NEVER 这三个值中选择。下面是将 hbarPolicyProperty 和 vbarPolicyProperty 设置为 ScrollBarPolicy.NEVER 的示例:

scrollPane.hbarPolicyProperty().setValue(ScrollPane.ScrollBarPolicy.NEVER);
scrollPane.vbarPolicyProperty().setValue(ScrollPane.ScrollBarPolicy.NEVER);

上面的示例从 ScrollPane 删除垂直滚动条和水平滚动条。如果没有滚动条,用户就不能使用它们滚动 ScrollPane 的内容。但是,如果 ScrollPane pannable模式,用户仍然可以获取内容并用鼠标滚动。