gpt4 book ai didi

java - TornadoFX模态对话框不会自动调整高度

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

我有一个打开模式对话框的TornadoFX应用程序。它具有文本字段,如果输入无效,则可能显示错误。
问题在于,显示或隐藏错误时,模态对话框不会自动调整其高度。
这是简化对话框的外观,无错误且有错误
enter image description here enter image description here
这是一个简化的 View :

class InputView : View("Enter text") {
private val textProperty = SimpleStringProperty()

override val root: VBox = vbox {
label("Enter text below:")

textfield(textProperty)

label("Error message") {
visibleWhen(textProperty.isNotEmpty)
// This is necessary so that hidden error is really removed, see https://stackoverflow.com/a/28559958/519035
managedProperty().bind(visibleProperty())
}

button("OK")
}
}
Controller 像打开它
inputView.openModal(owner = primaryStage)
TornadoFX和JavaFX具有许多配置,例如prefHeight,usePrefHeight,fitToHeight,maxHeightProperty,vgrow。
我和他们玩过,但是到目前为止还没有运气。
有人可以指出使此对话框自动调整其高度的正确方法吗?

最佳答案

在另一个question的帮助下,我找到了解决方案。
我必须将以下内容添加到有错误的节点:

visibleProperty().onChange {
currentWindow?.sizeToScene()
}
最终的简化代码如下所示
class InputView : View("Enter text") {
private val textProperty = SimpleStringProperty()

override val root: VBox = vbox {
label("Enter text below:")

textfield(textProperty)

label("Error message") {
visibleWhen(textProperty.isNotEmpty)

// This is necessary so that hidden error is really removed, see https://stackoverflow.com/a/28559958/519035
managedProperty().bind(visibleProperty())

// This is necessary to automatically adjust dialog height when error is shown or hidden
visibleProperty().onChange {
currentWindow?.sizeToScene()
}
}

button("OK")
}
}

关于java - TornadoFX模态对话框不会自动调整高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62657640/

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