You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取布局父节点的-fx-font-size属性值?

如何获取布局父节点的-fx-font-size属性值?

嘿,我来帮你搞定这个问题!你想要获取MyNode的布局父节点(比如你例子里的VBox)的-fx-font-size属性值,其实有几种简单可靠的方法,我给你详细说说:

  • 首先要注意:必须等你的MyNode被添加到布局父节点之后再去获取,不然getParent()会返回null,根本拿不到父节点对象哦。

  • 方法一:直接获取父节点的实际字体大小
    CSS里的-fx-font-size最终会映射到节点的Font属性上,所以咱们可以直接调用父节点的getFont().getSize()来拿到对应的数值。代码示例:

    // 假设你的MyNode实例是myNode
    Parent parent = myNode.getParent();
    if (parent != null) {
        double parentFontSize = parent.getFont().getSize();
        // 这里parentFontSize就是父节点的-fx-font-size对应的值啦
    }
    

    如果你确定父节点是VBox这种具体的布局类,也可以强转后调用:

    if (myNode.getParent() instanceof VBox) {
        VBox vBoxParent = (VBox) myNode.getParent();
        double fontSize = vBoxParent.getFont().getSize();
    }
    
  • 方法二:监听父节点变化(更稳妥)
    有时候你可能不确定节点什么时候被添加到父节点,这时候可以监听parentProperty()的变化,确保在父节点存在时再获取值:

    myNode.parentProperty().addListener((observable, oldParent, newParent) -> {
        if (newParent != null) {
            double parentFontSize = newParent.getFont().getSize();
            // 在这里处理拿到的字体大小值
        }
    });
    
  • 小提醒:如果父节点的-fx-font-size是通过外部CSS文件设置的,完全不用担心!JavaFX会自动把CSS样式应用到节点的Font属性上,所以getFont().getSize()依然能拿到正确的计算后的值。

备注:内容来源于stack exchange,提问作者SilverCube

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 09:55:27