当前位置: 首页 > 知识库问答 >
问题:

JavaFX:滚动包含动态信息的窗格(标签、文本字段、按钮)

孙弘博
2023-03-14

如何使窗格(内部包含元素)可滚动?

在FXML文件中,我放了一个ScrollPane,我希望它是可滚动的窗格。正确吗?还是我错了?

滚动ane.set内容(窗格);

共有1个答案

华良才
2023-03-14

是的,没错。创建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();
 类似资料:
  • 问题内容: 当内容的高度增加时,有什么方法可以自动向下滚动ScrollPane控件?例如,我在屏幕底部(在ScrollPane内部)有一个TitledPane,当我展开它时,我希望ScrollPane向下滚动,以便可以看到TitledPane的全部内容。 问题答案: 您可以结合使用和和来实现该行为 第一个是获取titlePane的坐标,第二个是设置scrollPane的垂直栏位置。请注意,它的范围

  • 问题我如何可以嵌入这个应用程序到SPlitPane,在左边将是另一个面板。 不幸的是,代码导致了错误的坐标,

  • 我试图将乘法VBox添加到scrollpane中的gridpane(在下面的codesnippet中称为refPane)。 它在一行中添加不超过ITEMS_PER_ROW的Vbox,并在下一行中继续。也不应该有更多的行,然后ITEMS_PER_COLUM可见。问题是,如果我添加更多的ITEMS_PER_ROW*ITEMS_PER_COLUMN到网格中,而不是obingbeingscrollable

  • 我有一组节点。添加的第一个节点是一个< code>ImageView。则该组被设置为可滚动窗格的内容子节点。该组被绑定到缩放变换,以便调整该组的大小。 如果添加了一个事件过滤器到可滚动窗格,以识别是否使用了CTRL和鼠标滚轮。这将创建我需要的放大和缩小操作。 问题是可滚动窗格没有根据放大或缩小组更改条形图。 下面是代码片段 我不想使用实例,因为它在不同的示例中使用。应该使用<code>组

  • 我有一个标签,它显示+ve或-ve符号。 我还有另一个标签,标签的文本颜色取决于的文本。 如果标签符号有3种情况:、和,如果标签符号为,则如何处理的文本为黑色?

  • 我正在做一个项目,其中有两个选项卡。在first Tab的用户界面上有一个文本字段和一个按钮。在文本字段中,用户可以写到100之前的任何数字,当他按下按钮Next时,我的应用程序将转到下一个选项卡,在该选项卡上有一个带有三列a、B和C的Gridpane。 所以我想要的是用户将在第一个选项卡的文本字段中输入的任何数字,根据该数字,它应该在第二个选项卡的GridPane中添加相同数量的Textfiel