Kotlin Tornadofx FilterList String вне диапазона
Я пытаюсь изучить tornadofx, и я столкнулся с ошибкой, которую я не могу понять, как решить, к сожалению. Я использую фильтр, когда это весело, и он прекрасно работает, однако, когда я фильтрую данные, я получаю обработчик ошибок, сообщающий мне, что у меня есть строка из диапазон, и это происходит случайно, когда я удаляю символ из текстового поля, я знаю, что код беспорядок:D
enter code hereclass CenterView : View("My View") {
private val ExcelHandler: ExcelController by inject()
private var content = mutableListOf<Products>().observable()
private var rowcounter = SimpleIntegerProperty()
private var oktorun = SimpleBooleanProperty(true)
val table = TableView<Products>()
val data = SortedFilteredList(content).bindTo(table)
private var Accounts = mutableListOf<String>().observable()
override val root = borderpane() {
bottom{
hbox(10) {
style{
padding = box(10.px)
alignment = Pos.CENTER
}
button("Import"){
addClass(Styles.btmDesign)
style{
backgroundColor += Color.PURPLE
fontFamily = "Comic Sans MS"
}
useMaxWidth = true
enableWhen(oktorun)
action {
oktorun.value = false
runAsync {
ExcelHandler.readExcel("data/test.xlsx")
} ui { loadedText ->
content.isEmpty()
content.addAll(loadedText.observable())
rowcounter.value = loadedText.count()
Accounts.addAll(loadedText.map { it.Account }.toList().distinct()
.observable())
oktorun.value = true
}
}
}
hbox{
label("Rows ")
{
style{
fontSize = 20.px
fontWeight = FontWeight.BOLD
}
}
label {
style{
fontSize = 20.px
fontWeight = FontWeight.BOLD
textFill = Color.GREEN
}
bind(rowcounter)
}
}
textfield {
promptText = "Filter"
data.filterWhen(textProperty()) { query, item ->
item.Account!!.contains(query, ignoreCase = true)
}
}
}
left{
listview(Accounts) {
style{
padding = box(20.px)
fontSize = 20.px
fontWeight = FontWeight.BOLD
}
}
}
center{
style{
prefWidth = 100.px
alignment = Pos.CENTER
padding = box(20.px)
}
tableview(data) {
isEditable = true
style{
fontSize =20.px
fontWeight = FontWeight.EXTRA_BOLD
}
column("External", Products::ExternalProperty)
column("ItemRelation", Products::ItemRelationProperty)
column("Account",Products::AccountProperty)
column("Price", Products::AmmountProperty)
column("currency", Products::ValutaProperty)
column("Date", Products::DateProperty)
column("Status", Products::StatusProperty)
enableDirtyTracking()
columnResizePolicy = SmartResize.POLICY
}.multiSelect(true)
}
right {
}
}
}
}
Большое спасибо за уделенное время!
ошибка
java.lang.StringIndexOutOfBoundsException: строковый индекс вне диапазона: 3 в java.lang.String.charAt(String.java:658) в com.sun.glass.ui.win.WinTextRangeProvider.GetBoundingRectangles(WinTextRangeProvider.j) com.sun.glass.ui.win.WinApplication._runLoop(собственный метод) по адресу com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177) по адресу java.lang.Thread.run(Thread.java:748)