3

我在理解 JavaFX 中的布局时遇到了一些问题。考虑以下代码。

阶段 {
    标题:“列表视图测试”
    场景:场景{
        宽度:400
        身高:400
        内容: [
            垂直框 {
                内容: [
                    列表显示 {
                        身高:200
                        宽度:200
                        项目:[“项目1”,“项目2”]
                    }
                ]
            }
        ]
    }
}

我期待 ListView 以 200 x 200 尺寸显示,但无论我如何尝试解决此问题,ListView 的宽度和高度似乎都是固定的。但是下面的代码可以按照我的意图显示 ListView。

阶段 {
    标题:“列表视图测试”
    场景:场景{
        宽度:400
        身高:400
        内容: [
            列表显示 {
                身高:200
                宽度:200
                项目:[“项目1”,“项目2”]
            }
        ]
    }
}

那么,这里有什么问题呢?我不能在布局中使用 ListView?

4

2 回答 2

3

在 JavaFX 1.2.x 中,布局中节点的宽度和高度信息用于阅读目的。如果要指定“首选”维度,请使用

ListVIew {
    layoutInfo: LayoutInfo {width: 200, height: 200}
}

这将在布局中作为首选尺寸进行处理,并且组件将根据此进行布局。如果您有使用 NetBeans JavaFX Composer Preview 的经验,您可能会注意到生成的代码使用特殊类型的绑定,允许在布局和其他容器(场景、组)中正确调整大小。

Ad Broken:Java FX 中的布局是基于 Node 构建的,并使用算法方法来定位和调整组件的大小,这与 Group/Scene 中使用的几何位置无关。不幸的是,在 1.2 中,它带来了某种二元性,这应该会误导初学者。

于 2010-04-12T06:53:17.563 回答
1

允许布局节点更改其子节点的位置和大小。简单地设置孩子的宽度和高度并期望布局知道它应该尊重您的新值是不好的,您需要某种方式告诉布局节点您想要尊重的值。看看 LayoutInfo 类,以及 Node.js 中的 layoutInfo 变量。

于 2010-04-11T10:03:47.227 回答