JavaFX ScrollPane

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

如果组件大于ScrollPane的可见区域,则JavaFX ScrollPane控件是一个容器,该组件在组件周围具有两个滚动条。滚动条使用户可以在ScrollPane内部显示的组件周围滚动,因此可以看到组件的不同部分。 JavaFX ScrollPane控件由JavaFX类javafx.scene.control.ScrollPane表示。这是一个JavaFXScrollPane的屏幕截图,其中包含JavaFX ImageView:

创建一个ScrollPane

要使用JavaFXScrollPane,必须首先创建ScrollPane实例。这是创建JavaFXScrollPane实例的示例:

ScrollPane scrollPane = new ScrollPane();

设置ScrollPane内容

创建JavaFXScrollPane实例后,我们可以通过其setContent()方法设置要显示的内容。这是一个将JavaFXImageView设置为JavaFXScrollPane的示例:

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视口

JavaFXScrollPane的可见部分称为ScrollPane视口。当我们使用滚动条滚动浏览" ScrollPane"内部显示的内容时,视口也会在内容周围移动,从而使内容的不同部分可见。

具有效果或者变换的内容

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

Pannable ScrollPane

默认情况下,用户只能使用其滚动条浏览JavaFXScrollPane中显示的内容。但是,可以使JavaFXScrollPane可以平移。可滚动的" ScrollPane"使用户可以通过按住鼠标左键并在周围移动鼠标来导航其内容。这将与使用滚动条具有相同的效果。但是,使用平移可以同时在X和Y轴上移动内容。使用滚动条是不可能的,因为用户一次只能操作一个滚动条。

要将JavaFXScrollPane切换到可平移模式,必须将其" pannableProperty"设置为值" true"。这是将JavaFXScrollPane切换为可平移模式的示例:

scrollPane.pannableProperty().set(true);

适合宽度

JavaFX的ScrollPane的fitToWidth属性可以使ScrollPane的内容适合ScrollPane视口的宽度。为此,必须将fitToWidth属性设置为值true。如果内容节点不可调整大小,则忽略此属性。这是将JavaFXScrollPane``fitToWidth属性设置为true的示例:

scrollPane.fitToWidthProperty().set(true);

适合身高

JavaFX的ScrollPane的fitToHeight属性可以使ScrollPane的内容适合ScrollPane视口的高度。为此,必须将fitToHeight属性设置为值true。如果内容节点不可调整大小,则忽略此属性。这是将JavaFXScrollPane``fitToHeight属性设置为true的示例:

scrollPane.fitToHeightProperty().set(true);

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

可以指定何时JavaFXScrollPane显示垂直和水平滚动条。我们可以通过ScrollPane,hbarPolicyProperty和vbarPolicyProperty属性来实现。这些属性可以设置为ScrollPane.ScrollBarPolicy枚举值之一。我们可以从值" ALWAYS"," AS_NEEDED"和" NEVER"中进行选择。这是将hbarPolicyProperty和vbarPolicyProperty设置为ScrollBarPolicy.NEVER的示例:

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

上面的示例从ScrollPane中删除了垂直和水平滚动条。没有滚动条,用户将无法使用滚动条来滚动" ScrollPane"的内容。但是,如果ScrollPane处于可平移模式(请参阅本JavaFX ScrollPane教程的前面的部分),则用户仍可以抓取内容并使用鼠标在内容周围滚动。