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) } } } label("Then Me") button("Jump To") { action { lv.scrollTo(data.size as Int?) } } alignment = Pos.CENTER_LEFT spacing = 4.0 } padding = Insets(10.0) spacing = 4.0 } init { (1..10).forEach { data.add( it ) } } } class ScrollTo : App(ScrollToView::class) { override fun createPrimaryScene(view: UIComponent) = Scene(view.root, 667.0, 376.0) } fun main(args: Array) { launch(args) }