Я пытаюсь динамически создать панель вкладок, используя Tornadofx версии 1.7.18, и по какой-то причине вкладки дублируются.
У меня есть файл конфигурации, который загружается в приложение с изменяемыми значениями, так что программа следует принципам SOLID , в частности принципу открытого-закрытого типа.
Я использую решение Javafx для добавления вкладок, вызывая tabpane.tabs.add()
внутри цикла forEach
.
Это упрощенная версия моей проблемы, но она все еще показывает проблему.
class Example: View() {
private val tabList = List(3) {
return@List it.toString()
}
override val root = tabpane()
init {
with(root) {
tabClosingPolicy = TabPane.TabClosingPolicy.UNAVAILABLE
tabList.forEach {
this.tabs.add(
tab(it) {
label("Hello $it")
}
)
}
}
}
}
В результате обе вкладки «0» отображаются как выбранные. Окно выглядит так на компьютере с Windows:
+----------------+
|icon| |-|[]|X|
+----------------+
||0|0|1|1|2|2| |
+----------------+
|Hello 0 |
+----------------+