したがって、次の形式で N 行が必要な場合がありますLabel TextView/Checkbox
。おそらく、これらの 2 つ以上のビューが必要になるので、TornadoFx であるすべてのものをサポートできるようにしたいと考えていますView
。
TornadoFx を返す 1 つのメソッドを持つインターフェイスを作成しましたView
。次のようになります。
interface ValueContainer {
fun getView() : View
}
実装の 1 つは次のようになります。
class BooleanValueContainer(val checked: Boolean) : ValueContainer {
val valueProperty = SimpleBooleanProperty(checked)
override fun getView(): View {
return (object : View() {
override val root = checkbox {
bind(valueProperty)
}
})
}
}
今、ブロック内で使用しようとするとinit
、レイアウトに表示されません。root
とはGridPane
、名前と実装へのparameters
参照を持つオブジェクトのリストです(または、私が示していない他のもの):ValueContainer
BooleanValueContainer
init {
with(root) {
parameters.map {
row(it.name) {
it.parameterContainer.getView()
}
}
}
}
私はかなり長い間ここで立ち往生しており、見つけることができるものはすべて試しましたが、呼び出しの代わりに配置textview
またはcheckbox
ブロックする以外は実際には何も機能しませんでした.getView()
ビューと私はそれを望んでいません。