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

JavaFx通过ScrollPane添加内容时调整VBox的大小

梁浩
2023-03-14

我在滚动窗格中放置了一个VBox。VBox会在标题窗格进入时填充它们。但是,一旦TitledPanes填满了分配给Vbox的空间,这些TitledPanes就开始重叠。理想情况下,我希望Vbox调整自身大小,并使用ScrollPane导航。

我将Vbox最大高度设置为use_computed_size。我已经在滚动窗格中添加了一个监听器来监听VBox大小的变化,但没有成功。有什么建议吗?

scrollPane.vvalueProperty().addListener(new ChangeListener<Number>() {
    public void changed(ObservableValue<? extends Number> ov,
            Number old_val, Number new_val) {
        vBox.setLayoutY(-new_val.doubleValue());
    }
});

共有1个答案

司空实
2023-03-14

您使用vbox而不是accordion有什么原因吗?使用手风琴时,可以使用ListChangeListener检查TitledPane编号的更改,然后在添加或删除项时调整手风琴的大小:

accordion.getPanes().addListener(new ListChangeListener<Item>() {
     public void onChanged(Change<tem> c) {
         while (c.next()) {
             if(c.wasAdded() || c.wasRemoved){
                 //resize Accordion in dependency of the vvalue of your scrollpane
             }
         }
     });

对于vbox,该原则仍然有效:

vbox.getChildren().addListener(new ListChangeListener<Item>() {
     public void onChanged(Change<tem> c) {
         while (c.next()) {
             if(c.wasAdded() || c.wasRemoved){
                 //rezise VBox in dependency of the vvalue of your scrollpane
             }
         }
     });

基于

 类似资料:
  • 我的场景中有一个对象。我希望能够调整窗口的大小,并与它一起调整窗格的大小。我还想在窗格旁边放置一个。 到目前为止,我已经成功地生成了一个完全可调整大小的或一个,其中包含和对象,但当我调整窗口大小时,窗格不会随之调整大小。 以下是带有锚烷的FXML: 只有的版本基本上就是版本中使用的代码,但具有和属性。 如何制作一个场景,使其具有可调整大小的和?

  • 这是我的主界面主界面 我在AnchorPane中有一个VBox (Fxid:datePane)。Vbox是蓝色的。 当单击标签为“Add”的按钮时,一个“second.fxml”文件被加载到VBox (Fxid:datePane)中。 加载的 fxml 文件采用 Vbox 的高度和宽度。 第二个.fxml有一个红色的VBox。 然而,如果我调整屏幕大小,加载的文件不会相应地改变其高度和宽度。调整屏

  • 我正在用JavaFX写一个程序 硼烷- 我希望能够添加尽可能多的行到gridpane,并让scrollpane自动扩展自己。 注意:我有一些很长的文件,所以我只包括重要的部分。如果您需要整个FXML或Controller文件,请给我留言。 以下是我的gridpane/scrollpane的FXML: 我有以下代码在我的控制器内的FXML 谢谢大家的帮助! 瑞恩

  • 如何在FXML(JavaFX)中获得用户调整大小后的新窗口大小?我已经搜索了一个“onResizeWindow”方法,但我什么也没有找到。

  • 我正在做一个需要VBoxes的“列表”表示的项目。我的应用程序分层布局是gridpane->VBox(在其中一个单元格中)->VBox(在彼此之上显示不同的数据集)->data。我有两个场景。 我的场景1控制器(控制器)如下所示: 这样设计是因为dataBox包含比标签更多的元素,但在本文中,这似乎与我无关。 我的场景2控制器(addDataController)如下所示: 我没有发布主类,因为加

  • 我正在尝试构建一个包含6个窗格(作为父级添加到GridPane布局中)的简单Java项目。我必须在开始时设置窗口大小,并通过参考根布局的宽度和高度,设法将它们均匀地拆分。 但我想要他们调整大小,因为我改变了窗口的大小(使用鼠标,现在他们得到固定的大小)。 下面是我的代码: