Javafx 简明教程

JavaFX - ScrollPane

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

scrollpane

ScrollPane in JavaFX

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

  1. ScrollPane() − 它构造了一个没有任何节点的 ScrollPane。

  2. ScrollPane(Node content) − 它构造了一个具有指定节点的新 ScrollPane。

Steps to create a ScrollPane in JavaFX

要创建 JavaFX ScrollPane,请遵循以下步骤。

Step 1: Create a node to display within the ScrollPane

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

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

Step 2: Instantiate the ScrollPane class

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

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

Step 3: Set the Content of the ScrollPane

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

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

Step 4: Launch the Application

一旦创建 ScrollPane 并设置其内容,就请按照以下所给步骤正确启动应用程序 −

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

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

  3. 现在,使用名为 Stage 的类的 setScene() 方法将 Scene 对象添加到阶段。

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

  5. 最后,借助 launch() 方法启动应用程序。

Example

以下 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

Disable Vertical Scroll bar of ScrollPane in JavaFX

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

Example

在以下示例中,我们将禁用 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