如何将窗格(内部元素)设为可滚动?
在FXML文件中,我已经放入ScrollPane,Pane我希望它是Scrollable。 它的正确吗?或者我错了?
ScrollPane.setContent(窗格);
答案 0 :(得分:1)
是的,这是正确的。创建FXML文件后,您只需将其显示为:
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("NAME_OF_FXML.fxml"));
Scene scene = new Scene(root);
stage.setTitle("ScrollPane Example");
stage.setScene(scene);
stage.show();
}
FXML文件应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="REFERENCE_TO_CONTROLLER">
<children>
<ScrollPane prefHeight="200.0" prefWidth="320.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<Pane prefHeight="382.0" prefWidth="386.0"> <!-- Add FXML id to your pane here -->
<children>
<Label layoutX="14.0" layoutY="14.0" text="Element 1" />
<Label layoutX="14.0" layoutY="170.0" text="Element 2" />
<Label layoutX="14.0" layoutY="352.0" text="Element 3" />
</children>
</Pane>
</content>
</ScrollPane>
</children>
</AnchorPane>
请注意,您的窗格必须大于滚动窗格才能显示滚动条。结果应如下所示:
如果要向窗格中动态添加信息,可以在FXML文件中为窗格指定FXML ID,然后使用控制器类获取对它的引用。可以从FXML资源获取控制器类,如下所示:
FXMLLoader myLoader = new FXMLLoader(getClass().getResource("NAME_OF_FXML.fxml"));
screenController = myLoader.getController();