使用tornadofx处理listview双击

时间:2019-10-31 14:36:46

标签: kotlin tornadofx

我想对tornadofx列表视图进行双击,但出现异常:

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。使用gradle 5.6.3,kotlin 1.3.50,tornadofx 1.7.19构建。 gradle javafxplugin正在获取默认的javafx,但我也尝试过明确指定版本11-13并获得相同的行为。我还尝试安装ubuntu openjfx软件包11.0.2 + 1-1〜18.04.2。

1 个答案:

答案 0 :(得分:1)

听起来像您正在尝试使用高于8的JDK / JavaFX运行TornadoFX 1,请将Java / JavaFX降级为8,或使用TornadoFX 2.0.0-SNAPSHOT(可从oss.sonatype.org获得)运行。此版本支持Java / JavaFX 13。