TornadoFX датагрид пуст
Итак, я следовал этому руководству, в котором рассказывается, как создать сетку данных в TornadoFX, и все работает отлично. Однако я хочу добавить несколько представлений в каждую ячейку моей таблицы данных, поэтому я хочу заменить область стека границей. Это ломает это. Ячейки все еще обнаруживаются, но они - пустые белые квадраты. Ни один из видов не появляется внутри. Я не совсем уверен, почему это происходит. Мне кажется, что cellFormat и cellCache действуют как циклы for-each, создавая графические элементы, описанные внутри них, для каждого элемента в списке ячеек, которые нуждаются в форматировании. Я не уверен, хотя. Таким образом, я действительно не уверен, как это исправить. Я действительно ценю, если кто-нибудь может помочь.
Код, который помещает зеленый круг и метку в каждый из белых квадратов:
class DatagridDemo: View("Datagrid Demo") {
val data = listOf("one", "two", "three")
override val root = datagrid(data) {
cellFormat {
graphic = stackpane() {
circle(radius = 50.0) {
fill = Color.ALICEBLUE;
}
label(it);
}
}
}
}
Мой код:
class DatagridDemo: View("Datagrid Demo") {
val data = listOf("one", "two", "three")
override val root = datagrid(data) {
cellFormat {
graphic = borderpane() {
//The widgets implement View()
top<TopWidget>();
bottom<BottomWidget>()
label(it);
}
}
}
}
1 ответ
При этом используются два пользовательских фрагмента для создания объектов, которые добавляются сверху и снизу.
class TopWidget(msg : String) : Fragment() {
override val root = label(msg)
}
class BottomWidget(msg : String) : Fragment() {
override val root = label(msg)
}
class DatagridDemo: View("Datagrid Demo") {
val data = listOf("one", "two", "three")
override val root = datagrid(data) {
cellFormat {
graphic = borderpane {
top { add(TopWidget("Top ${it}")) }
center { label(it) }
bottom { add(BottomWidget("Bottom ${it}")) }
}
}
}
}
class DGDemo : App(DatagridDemo::class)