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)

0 ответов

Другие вопросы по тегам