处理listview双击与龙卷风x



我想处理龙卷风x列表视图上的双击,但我遇到了一个异常:

java.lang.NoClassDefFoundError: com/sun/javafx/scene/control/skin/TableColumnHeader
at tornadofx.NodesKt.isInsideRow(Nodes.kt:492)
[...]

在下面的代码中,如果我使用onDoubleClick,它是有效的,但我希望能够使用onUserSelect,或者至少理解为什么它不起作用。

package com.example.demo.app
import tornadofx.*
class MainView : View("listview demo") {
val things = SortedFilteredList<String>()
init {
things.add("aaa")
things.add("bbb")
}   
override val root = listview(things) {
onUserSelect {
println("user select")
}   
/*  
onDoubleClick {
println("double click")
}   
*/  
}   
}   
class MyApp: App(MainView::class)

运行ubuntu 18.04.3。建筑物等级5.6.3,kotlin 1.3.50,龙卷风x 1.7.19。gradle javafxplugin获得了默认的javafx,但我也尝试过显式指定版本11-13,并获得了相同的行为。我还尝试安装了ubuntu openjfx软件包11.0.2+1-1~18.04.2版本。

听起来你正试图用更新于8的JDK/JavaFX运行TornadoFX 1。请将Java/JavaFX降级至8,或使用oss.sonatype.org上提供的TornadoFX 2.0.0-SNAPSHOT运行。此版本支持Java/JavaFX13。

最新更新