У меня есть сложный объект, который я хочу отобразить в текстовом поле. Это работает нормально с stringBinding
. Но я не знаю, как сделать его двусторонним, чтобы текстовое поле можно было редактировать.
package com.example.demo.view
import javafx.beans.property.SimpleObjectProperty
import javafx.beans.property.SimpleStringProperty
import tornadofx.*
class MainView : View("Hello TornadoFX") {
val complexThing: Int = 1
val complexProperty = SimpleObjectProperty<Int>(complexThing)
val complexString = complexProperty.stringBinding { complexProperty.toString() }
val plainString = "asdf"
val plainProperty = SimpleStringProperty(plainString)
override val root = vbox {
textfield(complexString)
label(plainProperty)
textfield(plainProperty)
}
}
Когда я запускаю это, plainString
редактируется, и я вижу изменение метки, потому что редактированиевозвращаясь к свойству.
Как я могу написать собственный обработчик или какой класс мне нужно использовать, чтобы заставить stringBinding быть прочитанным и write? Я просмотрел много документации по недвижимости и связующей документации, но не увидел ничего очевидного.