gpt4 book ai didi

binding - JavaFX 中的动态/即时调整大小

转载 作者:行者123 更新时间:2023-12-02 07:13:27 25 4
gpt4 key购买 nike

如何创建(即时)动态调整大小的 JavaFX 应用程序?现在我已经编写了一个简单的应用程序,它可以动态调整大小,但直到在拖动时释放鼠标按钮后布局更改才会显示。我想在此按钮释放之前立即看到结果/布局更改。

我假设这是通过将正确的值/控件与反向绑定(bind)来完成的...任何帮助都会很棒!


编辑:

以下是我如何让事情正常进行(感谢 Praeus)。正如他所说,我必须将我的顶级容器/布局宽度和高度绑定(bind)到 scene.width 和 scene.height。 --

var scene: 场景;

阶段{
title: "申请标题"
场景:场景=场景{
内容:[
XMigLayout {
宽度:绑定(bind)scene.width;
高度:绑定(bind)scene.height;
...}]}}

最佳答案

绑定(bind)在 JavaFX 的 2.0 版本中有所不同。 Angela Caicedo's video演示如何很好地绑定(bind)属性。必须将变量设置为 ObservableNumberValue 并使用其获取和设置方法。设置完成后,您可以将其绑定(bind)到组件的属性。

DoubleProperty x = new SimpleDoubleProperty(0);
x.set(1);
x.getValue();
imageView.xProperty().bind(x);
anchorPane.heightProperty().add(x);

Eric Bruno's post 是另一种方式。

scene.widthProperty().addListener( 
new ChangeListener() {
public void changed(ObservableValue observable,
Object oldValue, Object newValue) {
Double width = (Double)newValue;
tbl.setPrefWidth(width);
}
});

scene.heightProperty().addListener(
new ChangeListener() {
public void changed(ObservableValue observable,
Object oldValue, Object newValue) {
Double height = (Double)newValue;
tbl.setPrefHeight(height);
}
});

编辑:添加了另一个更合适的答案以及我找到它的地方。

关于binding - JavaFX 中的动态/即时调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3391373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com