如果活动控制器不是该节点的控制器,是否可以更改JavaFX节点的样式(或任何属性)?
例如,假设我希望能够通过单击按钮来更改AnchorPane的颜色。按钮和AnchorPane有两个不同的控制器。 如何以最简单的方式实现这一目标?
我已经调查过/尝试过使用..
当关注嵌套控制器的文档时,我在成功获取AnchorPane的根节点实例后仍然停滞不前 - 无法弄清楚如何实际更改AnchorPane。
当调用AnchorPane控制器类中应该达到预期效果的函数时,AnchorPane引用将始终返回空指针错误。
答案 0 :(得分:0)
检查我的答案是否有类似的问题。在控制器之间传递数据是一种迂回,但它可以通过主类。我在这里回答了类似的问题。
Accessing node from outside its controller JavaFX - MVC
有一个链接的教程也很棒我自己学会了如何做到这一点。
答案 1 :(得分:0)
您有多种选择。其中一个是使用与另一个Node
相关联的控制器,这在这里有详细描述(如果信息流应该反过来,你可以将父控制器传递并存储到子控制器中) :
Passing Parameters JavaFX FXML
另一种选择是使用css选择器访问另一个节点Node
,但这不是干净的设计,因为它打破了封装。
(我在以下示例中假设id
的{{1}}属性的值为AnchorPane
,并且您可以访问"anchorPaneId"
,这是一个任意节点与您尝试访问的someNodeInTheSameScene
相同的场景。)
AnchorPane