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

在FXML中设置节点layoutProperty()

微生旻
2023-03-14

或者类似的内容,但是我的节点是在FXML文件中定义的。如何从FXML文件外部访问节点以便定义布局,或者如何在FXML文件中定义布局。(我不使用也不打算使用场景构建器)。

共有1个答案

周楷
2023-03-14

首先,你应该永远不需要做这样的事情。如果使用布局窗格,您应该始终能够选择布局窗格和设置的组合,这些设置可以根据需要自动定位节点。下面概述的解决方案永远不应该是真正需要的。

在控制器中,您通常不能直接访问场景,因此您需要侦听节点上的SceneProperty()何时初始化,并相应地执行操作:

public class Controller {

    @FXML
    private Button button ;

    public void initialize() {

        button.sceneProperty().addListener((obs, oldScene, newScene) -> {
            button.layoutYProperty().unbind();
            if (newScene != null) {
                button.layoutYProperty().bind(newScene.heightProperty().divide(2));
            }
        });

        // ...
    }
}

但是,这里正确的方法是选择适当的布局窗格来实现您想要的。

 类似资料:
  • 我已经用FXML创建了一个布局,它由一个带有sideMenu的BorderPane和一个用于其他内容的innerBorderPane组成... 但是,由于我刚刚开始使用JavaFX中的FXML,所以我只需要知道如何做下一件事... custom.FXML(这是主要的FXML布局) sideMenu.FXML(这是sideMenu FXML布局) java(这是sideMenu JavaFX控制器)

  • 问题内容: 我已经设置了一个Jenkins主节点,并且想要在同一网络中添加一个从节点。我需要在从机上安装Jenkins吗?还是可以在不首先安装Jenkins的情况下使用任意机器? 问题答案: 不,您根本不需要在任何从属计算机中安装Jenkins。 如果它是Linux从站,则只需要启用SSH访问即可。如果是Windows计算机,则使用Java并与 Jenkins提供的jar或通过Java Web c

  • 在本章中,我们将学习如何更改XML DOM对象中节点的值。 节点值可以更改(或设置)如下 - 如果是类型,那么变量将是属性的值; 如果是类型,则它将是文本内容; 如果是类型,则它将为。 以下部分将演示每种节点类型(,和类型)的节点值设置。 以下所有示例中使用的如下所示 - 1. 更改 Text 节点的值 当元素的更改值时,需要编辑元素的文本内容(也称为文本节点)。 以下示例演示如何更改元素的节点。

  • 问题内容: 我尝试在Google Container Engine的群集节点上安装ElasticSearch(最新版本),但是ElasticSearch需要变量:>> 262144。 如果我ssh到每个节点并手动运行: 一切正常,但是任何新节点将没有指定的配置。 所以我的问题是: 有没有办法在引导时在每个节点上加载系统配置?Deamon Set并不是一个好的解决方案,因为在Docker容器中,系统

  • 我有一个JavaFX应用程序,它首先计算一些数据,然后在LineChart上添加datapoints。我想在节点上添加一个ClickListener,如果用户单击图上的任何节点,相应的值将出现在TableView或其他东西中。但我无法检索节点的值。 代码如下: EventListener的代码: 我还尝试在LineChart上设置监听器,但在事件-对象中找不到相应的节点信息,如value等。

  • 问题很简单:从这里: 我必须分析一下: 这意味着每个属性都应该成为一个新的根节点。但对我来说,最困难的是我不能从“属性”中设置“属性”值作为对象节点名称。 这对我来说是个挑战。我可以在根节点中设置新节点。已经从“attributes”中获得了一个映射,然后尝试使用forEach对它们进行迭代,以便将结果放入一个节点中,但如图所示,我必须使用“property”将其设置为对象名称的键,然后获取值并设