java - Kotlin 刷新 imageview TornadoFX
问题描述
我试图刷新按钮叮当声上的图像视图的图像,但它似乎不起作用。这是我的代码:
class MasterView : View("Master View") {
val controller: MyController by inject()
val currentenemy = SimpleIntegerProperty(0)
override val root = borderpane() {
right = imageview(controller.monsters[currentenemy.value]) {
setFitHeight(250.0)
setFitWidth(175.0)
}
center = button("Change image") {
action { currentenemy.value += 1 }
}
}
}
class MyController: Controller() {
val monsters = FXCollections.observableArrayList("slime.png", "goblin.png", "mage.png", "knight.png", "boss.png")
}
我知道这些值正在改变,但 imageview 似乎并不关心它。
解决方案
您正在使用字符串值创建图像视图。currentEnemy
当您的属性更改时,没有什么可以告诉图像视图更新。为此,您需要为图像视图提供一个可以跟踪的可观察值。
例如:
right = imageview(currentEnemy.stringBinding { controller.monsters[it ?: 0] }) {
...
}
推荐阅读
- c - sprintf() 出错:'__builtin___sprintf_chk' 可能会在目标末尾写入终止 nul
- monaco-editor - 第二个编辑器的摩纳哥代码编辑器自定义行号
- c++ - const 和 non-const 函数作为模板参数参数
- docker - 如何从 Jenkinsfile 停止 Docker 容器
- android-studio - 更改已托管的使用 java 构建的 android 应用程序以颤振和更新
- header - 响应标头中的 ms-cv 是什么
- python-3.x - 打开文本文件并在python中更改它
- django - 在 AWS 服务器中使用 Outlook REST API Oauth2 时出现凭据不允许错误
- reactjs - 无法在包含到 React 组件的富文本编辑器(react-draft-wysiwyg)中获取输入的数据
- php - 在 ionic 4 上使用 Angular 7 帖子时出现 Cors 策略错误