JavaFX - ScrollPane



ScrollPane 是一种控件,它提供其内容的可滚动视口。它允许用户使用滚动条垂直或水平滚动内容。它用于显示一个大型组件或一个在屏幕视口有限时其大小可以动态更改的组件。请记住,滚动条的大小取决于组件的大小。下图显示了一个带有垂直滚动条的可滚动视口:

ScrollPane

JavaFX 中的 ScrollPane

在 JavaFX 中,滚动窗格控件由名为 ScrollPane 的类表示。此类属于 javafx.scene.control 包。通过实例化此类,我们可以在 JavaFX 中创建 ScrollPane 控件。此类具有以下构造函数:

  • ScrollPane() - 它构造一个没有任何节点的 ScrollPane。

  • ScrollPane(Node content) - 它使用指定的节点构造一个新的 ScrollPane。

在 JavaFX 中创建 ScrollPane 的步骤

要在 JavaFX 中创建 ScrollPane,请按照以下步骤操作。

步骤 1:创建要在 ScrollPane 中显示的节点

在 JavaFX 中,滚动窗格可以显示包含图像、文本或图表的节点。因此,实例化相应的类以创建所需的节点。这里,我们使用图像作为 ScrollPane 的内容:

// create an image view
ImageView imageTp = new ImageView(new Image("tutorials_point.jpg"));

步骤 2:实例化 ScrollPane 类

start() 方法内部实例化名为 ScrollPane 的类。此操作将为 ImageView 创建一个 ScrollPane。

// create a scroll pane
ScrollPane newscroll = new ScrollPane();

步骤 3:设置 ScrollPane 的内容

要设置 ScrollPane 的内容,我们使用名为 setContent() 的方法。将 ImageView 对象作为参数值传递给此方法。

// set the content of the scroll pane
newscroll.setContent(imageTp);

步骤 4:启动应用程序

创建 ScrollPane 并设置其内容后,请按照以下步骤正确启动应用程序:

  • 首先,通过将 ScrollPane 对象作为参数值传递给其构造函数以及应用程序屏幕的尺寸,实例化名为 Scene 的类。

  • 然后,使用 Stage 类的 setTitle() 方法设置舞台的标题。

  • 现在,使用名为 Stage 的类的 setScene() 方法将 Scene 对象添加到舞台。

  • 使用名为 show() 的方法显示场景的内容。

  • 最后,在 launch() 方法的帮助下启动应用程序。

示例

以下 JavaFX 程序演示了如何在 JavaFX 应用程序中创建 ScrollPane。将此代码保存在名为 JavafxScrollpane.java 的文件中。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
public class JavafxScrollpane extends Application {
   @Override
   public void start(Stage stage) {
      // creating an image view
      ImageView imageTp = new ImageView(new Image("tutorials_point.jpg"));
      // creating a scroll pane
      ScrollPane newscroll = new ScrollPane();
      // setting the content of the scroll pane
      newscroll.setContent(imageTp);
      // creating a scene and stage
      Scene scene = new Scene(newscroll, 500, 300);
      stage.setTitle("ScrollPane in JavaFX");
	  stage.setScene(scene);
      stage.show();
   }
   public static void main(String[] args) {
      launch(args);
   }
}

要从命令提示符编译和执行保存的 Java 文件,请使用以下命令:

javac --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxScrollpane.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxScrollpane

输出

当我们执行上述代码时,它将生成以下输出。

Scrollpane Output

在 JavaFX 中禁用 ScrollPane 的垂直滚动条

ScrollPane 类提供两种方法,即 setHbarPolicy()setVbarPolicy(),用于指定何时使用滚动条。要启用滚动条,我们将 ScrollBarPolicy.ALWAYS 属性传递给相应的方法,要禁用,我们使用 ScrollBarPolicy.NEVER 属性。

示例

在以下示例中,我们将禁用 ScrollPane 的垂直滚动条。将此代码保存在名为 JavafxScrollpane.java 的文件中。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.ScrollPane.*;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
public class JavafxScrollpane extends Application {
   @Override
   public void start(Stage stage) {
      // creating an image view
      ImageView imageTp = new ImageView(new Image("tutorials_point.jpg"));
      // creating a scroll pane
      ScrollPane newscroll = new ScrollPane();
      // disbaling the vertical scroll bar
      newscroll.setHbarPolicy(ScrollBarPolicy.ALWAYS);
      newscroll.setVbarPolicy(ScrollBarPolicy.NEVER);
      // setting the content of the scroll pane
      newscroll.setContent(imageTp);
      // creating a scene and stage
      Scene scene = new Scene(newscroll, 500, 300);
      stage.setTitle("ScrollPane in JavaFX");
	  stage.setScene(scene);
      stage.show();
   }
   public static void main(String[] args) {
      launch(args);
   }
}

通过使用以下命令从命令提示符编译和执行保存的 Java 文件:

javac --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxScrollpane.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxScrollpane

输出

执行上述代码后,它将生成以下输出。

Scrollpane Output2
广告