Элементы управления не всегда могут помещаться в отведенное им пространство. В этом случае мы можем использовать полосы прокрутки для удобного обращения к подобным элементам управления. Для создания возможности прокрутки в JavaFX применяется класс javafx.scene.control.ScrollPane.
ScrollPane определяет два конструктора:
ScrollPane()
: создает пустой объект ScrollPane
ScrollPane(Node content)
: создает объект ScrollPane, в который помещается узел content
Для управления прокручиваемым содержимым ScrollPane определяет ряд методов. Некоторые из них:
void setContent(Node content)
: устанавливает содержимое в ScrollPane
void setPrefViewportHeight(double height)
: устанавливает предпочтительную высоту видимого пространства в ScrollPane
void setPrefViewportWidth(double width)
: устанавливает предпочтительную ширину видимого пространства в ScrollPane
import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.FlowPane; import javafx.scene.control.Label; import javafx.scene.control.ScrollPane; import javafx.geometry.Orientation; public class Main extends Application{ public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) throws Exception { Label headerLbl = new Label("ScrollPane"); Label textLbl = new Label("Lorem Ipsum is simply dummy text of the printing and typesetting \n" + "industry. Lorem Ipsum has been the industry standard dummy \n" + "text ever since the 1500s, when an unknown printer took a galley..."); ScrollPane scrollPane = new ScrollPane(textLbl); scrollPane.setPrefViewportHeight(150); scrollPane.setPrefViewportWidth(200); FlowPane root = new FlowPane(Orientation.VERTICAL, 10, 10, headerLbl, scrollPane); Scene scene = new Scene(root, 300, 250); stage.setScene(scene); stage.setTitle("ScrollPane in JavaFX"); stage.show(); } }
С помощью методов setVvalue(double value) и setHvalue(double value) можно установить положение ползунка прокрутки по вертикали и по горизонтали соответственно. В качестве значения в методы передается число от 0 до 1, где 0 - это начало, а 1 - конец. Например, определим положение ползунка прокрутки по середине:
ScrollPane scrollPane = new ScrollPane(textLbl); scrollPane.setPrefViewportHeight(150); scrollPane.setPrefViewportWidth(200); scrollPane.setPannable(false); scrollPane.setVvalue(0.5); scrollPane.setHvalue(0.5);