class ScrollToView : View("Scroll To") { val data = mutableListOf().observable() override val root = vbox { val lv = listview(data) separator() hbox { label("Press Me First") button("Add More") { action { (11..10_000).forEach { data.add(it.toString()) } } } label("Then Me") button("Jump To") { action { lv.scrollTo(data.size) } } alignment = Pos.CENTER_LEFT spacing = 4.0 } padding = Insets(10.0) spacing = 4.0 } init { (1..10).forEach { data.add( it.toString() ) } } } class ScrollTo : App(ScrollToView::class) { override fun createPrimaryScene(view: UIComponent) = Scene(view.root, 667.0, 376.0) } fun main(args: Array) { launch(args) }