gpt4 book ai didi

java - tornadoFX 切换按钮没有文本属性

转载 作者:行者123 更新时间:2023-11-29 04:29:14 26 4
gpt4 key购买 nike

我是 kotlin 和 tornadoFX 的新手。在 TornadoFX 指南中,可以使用以下内容构建 ToggleButton:

togglebutton("OFF").action { text = if (isSelected) "ON" else "OFF" }

但是当我将相同的代码复制到我的 IDE 中时,出现了错误!

codes from guide copied to my IDE

tornadoFX的togglebutton好像没有text属性?

最佳答案

我们似乎有点急于用新的 .action 语法更新指南,所以指南中的示例实际上是错误的。正确的代码是:

togglebutton("OFF") {
action {
text = if (isSelected) "ON" else "OFF"
}
}

指南中示例错误的原因是,当您调用 togglebutton("OFF").action { .. } 时,this inside action{} 实际上是周围的容器而不是按钮。

对于不对按钮本身进行操作的操作,简短语法很好,但如果您需要操作按钮,则需要使用完整语法,以便您的代码在按钮的上下文中执行。

另一方面,创建一个字符串绑定(bind)来表示按钮状态可能更符合习惯,而不是在操作回调中手动更新它:

togglebutton {
val stateText = selectedProperty().stringBinding {
if (it == true) "ON" else "OFF"
}
textProperty().bind(stateText)
}

关于java - tornadoFX 切换按钮没有文本属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44526158/

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