Javafx 使TornadFX组合框手柄按键选择项目

Javafx 使TornadFX组合框手柄按键选择项目,javafx,kotlin,tornadofx,Javafx,Kotlin,Tornadofx,在很多平台上,当下面的组合框有焦点时,如果我开始键入“a”,它会自动突出显示“alice”。有可能通过Tornadofx/Javafx获得这种行为吗?我尝试添加setEditable(true),但这只允许我自由编辑名称,而不会突出显示/选择现有名称 class MainView : View("Hello TornadoFX") { val names = FXCollections.observableArrayList( "alice", "bob", "charl

在很多平台上,当下面的组合框有焦点时,如果我开始键入“a”,它会自动突出显示“alice”。有可能通过Tornadofx/Javafx获得这种行为吗?我尝试添加
setEditable(true)
,但这只允许我自由编辑名称,而不会突出显示/选择现有名称

class MainView : View("Hello TornadoFX") {
    val names = FXCollections.observableArrayList(
        "alice", "bob", "charlie", "denise")

    override val root = vbox {
        combobox<String> {
            items = names
        }
    }
}
class主视图:视图(“Hello TornadFX”){
val names=FXCollections.observableArrayList(
“爱丽丝”、“鲍勃”、“查理”、“丹尼斯”)
覆盖val root=vbox{
组合框{
项目=名称
}
}
}

您可以使用TornadFX
makeAutocompletable()
扩展来实现这一点。下面是一个语法更为严格的示例。请注意,通常情况下,您会将combobox的结果绑定到可观察的字符串属性,因此生成器语法将是
combobox(name,names)
或类似的东西

class MainView : View("Hello TornadoFX") {
    val names = observableListOf("alice", "bob", "charlie", "denise")

    override val root = vbox {
        combobox(values = names) {
            makeAutocompletable()
        }
    }
}
如果需要更改筛选条件,还可以将筛选函数传递给
makeAutocompletable