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

JavaFX:ScrollPane方法getChildren()不可见

沃学
2023-03-14

当然,舞台和场景是在程序初始化时以编程方式创建的。我还想以编程方式添加一个GridPane作为图中所示滚动窗格的子级。在我的程序(特定窗口的控制器)中,我可以获得对滚动窗格的引用:

@FXML
private ScrollPane srcPaneUsers;

(id srcPaneUsers已通过场景生成器属性窗口的相应字段指定)

但是!!:当我尝试通过控制器的initialize方法的以下行以编程方式添加在运行时创建的新GridPane时:

public void initialize(URL location, ResourceBundle resources) {
    myGridPane = new GridPane();
    srcPaneUsers.getChildren().add(myGridPane);
}

我收到一个编译时错误,上面写着“来自父类型的getUNICEF()方法不可见。”所以我无法在运行时添加我的GridPane。有什么想法吗?

共有1个答案

融焕
2023-03-14

您调用了错误的方法。你需要

srcPaneUsers.setContent(myGridPane);

父级中定义的方法是受保护的方法。它在窗格中被重写为公共方法,因此对于布局窗格(网格窗格边界窗格等),您可以直接操作子节点列表。

滚动窗格的层次结构是滚动窗格扩展控件扩展区域扩展父级,因此它继承了受保护的getChildren()方法。这实际上是有意义的:滚动窗格的子节点类似于视口(剪辑内容视图)和滚动条:你并不想让用户操纵它们,否则你最终可能无法正常工作<“代码>滚动窗格”(code>ScrollPane)实际上只有一个可配置的节点:“代码>滚动窗格”(ScrollPane)提供视图的节点:该节点称为其内容(content),并通过内容属性(contentProperty)()、“代码>获取内容”(getContent)()和设置内容(setContent)(方法进行访问。

其他“类容器控件”的工作方式类似。TabPane类公开了一个getTabs()方法,该方法返回一个观察列表

请注意,父节点还定义了一个public方法,该方法返回子节点列表的不可修改视图。您可以使用它来检查任何父节点的节点层次结构,但不能修改它。(但是,为了进行调试,特别是使用CSS,我建议使用ScenicView。)

 类似资料:
  • .getChildren( nested:Boolean, tweens:Boolean, timelines:Boolean, ignoreBeforeTime:Number ) : Array 返回一个数组,其中包含嵌套在此时间轴中的所有动画和时间轴。 //创建一个主时间轴和一个子时间轴: var master = new TimelineLite(), nestedTimeline

  • 我正在尝试制作一个创建棋盘格的javafx程序。但是,当我尝试运行我的程序时,它在这一行中抛出异常:optionsPane.getChildren().addAll(optionsPane,n_input,grid_display,label,createButton);这些是例外情况:

  • 问题内容: 题: 在这里,“ MyClass”类可以通过调用“ Object”类中的clone方法来克隆其自己的对象。当我尝试在同一包“ GoodQuestions”中的另一个类(“ TestSingleTon”)中克隆此类(“ MyClass”)的类时,会引发以下编译时错误。 “来自对象类型的方法clone()不可见 ” 所以这是引发上述错误的代码? 问题答案: 发生此错误的原因是在对象类中cl

  • 我正在使用Selenium(2.44.0)进行我的Java单元测试,并且我正在尝试使用WebElement的方法,但它似乎不可用。我只能看到和方法。 (Eclipse中的错误消息:“方法isDisplay()未定义为WebElement类型”) pom。xml: Java代码: 知道我可能错过了什么吗? 编辑-添加完整pom。xml和eclipse错误消息以澄清问题 编辑(2)-将Java代码更改

  • 问题内容: 假设我有一个Point带有x和y参数的不可变类,以及一个add定义如下的方法: 由于它是不可变的,因此它返回一个新的Point。这一切都很好,直到我们有了一个扩展Point并重新定义的类add。 我们必须编写新的定义,因为否则将返回addon的方法,这是不好的。但是现在,这在大多数语言中都行不通,因为我们正在压倒一切,但我们只是在对返回类型进行歧义处理。语言不允许您只对返回类型进行歧义

  • 问题内容: 我有以下代码: 运行此命令时,我不断收到错误消息: 怎么解决呢? 问题答案: 您正在将 未绑定的 对象存储在字典中。通过访问名称作为类或实例上的属性,此类对象(以及对象,函数和对象)仅通过描述符协议进行绑定。直接访问类主体中的对象不是属性访问。 在 创建类 之后 创建字典(以便您将它们作为属性访问),或者显式绑定,或者在将它们存储在字典中之前提取原始函数。 注意,对对象的“绑定”仅意味