JavaFX Tutorial
ScrollPane in JavaFX provides a scrollable clipped viewport of its content. When your application displays huge amounts of information and you can’t see them all, you will need a scrollpane. It enables horizontal and vertical scrolling. The setContent()
method in JavaFX ScrollPane allows users to add any node into ScrollPane.
This article explains the basics of the ScrollPane in JavaFX. We will go over some main methods as well as how to use the JavaFX ScrollPane. We’ll also show you how to implement it in your JavaFX application in the simplest way possible. As a demonstration or example, we will use an image to display inside the ScrollPane in this topic. Please continue reading to find out more about the ScrollPane.
How to use the ScrollPane in JavaFX
To use the ScrollPane in JavaFX, simply call the setContent()
method. We will also discuss some other cool ScrollPane features like dragging the node inside the ScrollPane and also changing the ScrollBarPolicy. These are the following methods we will use in this demonstration.
- setContent() – The node used as the content of this ScrollPane.
- setPannable() – Specifies whether the user should be able to pan the viewport by using the mouse.
- setHbarPolicy() – Specifies the policy for showing the horizontal scroll bar.
- setVbarPolicy() – Specifies the policy for showing the vertical scroll bar.
These are the most common methods for implementing the Scrollpane. As a result, the setContent()
method is used to add the node into the Scrollpane. The ScrollPane will not function as intended if the setContent()
method is not used. The setPannable()
method enables the user to drag the content within the ScrollPane by clicking and dragging the mouse, while the setHbarPolicy()
and setVbarPolicy()
methods are used to display the scrollbar by using the ALWAYS
, AS_NEEDED
, and NEVER
.
The word itself explains the policy; the ALWAYS
policy will always show the scrollbars, but the AS_NEEDED
policy will only show the scrollbars when needed, and the NEVER
policy will never show the scrollbars.
Example: Displays the image with the ScrollPane
import java.io.IOException; 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.scene.layout.BorderPane; import javafx.stage.Stage; /** * * @author KENSOFT */ public class Scroll extends Application { @Override public void start(Stage stage) throws IOException { //Layout used BorderPane root = new BorderPane(); Scene scene = new Scene(root, 500, 400); stage.setScene(scene); stage.setTitle("Scroll Pane Tutorial"); //Creating the ScrollPane ScrollPane scroll = new ScrollPane(); scroll.setContent(image()); scroll.setHbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED); scroll.setVbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED); // is used to add the SrollPane at the center of the BorderPane root.setCenter(scroll); // show the stage stage.show(); } // Get the image from the Source packages private ImageView image() { Image image = new Image("/scroll/kensoft.png"); ImageView view = new ImageView(image); return view; } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } }
Output:
JavaFX ScrollPane using the SceneBuilder
To add the ScrollPane in JavaFX using the Scene Builder is one of the easiest way to do. Using the What you see is what get (WYSIWYG) editor very easy, you can simply drag and drop the components into the layout.