使 tornadofx 组合框处理按键到 select 项
make tornadofx combo box handle keypress to select item
在很多平台上,如果我在下面的组合框获得焦点时开始输入 "a",它会自动突出显示 "alice"。是否可以使用 Tornadofx/Javafx 获得该行为?我尝试添加 setEditable(true)
但这只允许我自由编辑名称并且它不会对现有名称进行任何 highlighting/selection。
class MainView : View("Hello TornadoFX") {
val names = FXCollections.observableArrayList(
"alice", "bob", "charlie", "denise")
override val root = vbox {
combobox<String> {
items = names
}
}
}
您可以为此使用 TornadoFX makeAutocompletable()
扩展。这是一个语法更严格的示例。请注意,通常您会将组合框的结果绑定到可观察的字符串 属性,因此构建器语法将是 combobox(name, names)
或类似的东西。
class MainView : View("Hello TornadoFX") {
val names = observableListOf("alice", "bob", "charlie", "denise")
override val root = vbox {
combobox(values = names) {
makeAutocompletable()
}
}
}
如果您需要更改过滤条件,您也可以将过滤函数传递给 makeAutocompletable
。
在很多平台上,如果我在下面的组合框获得焦点时开始输入 "a",它会自动突出显示 "alice"。是否可以使用 Tornadofx/Javafx 获得该行为?我尝试添加 setEditable(true)
但这只允许我自由编辑名称并且它不会对现有名称进行任何 highlighting/selection。
class MainView : View("Hello TornadoFX") {
val names = FXCollections.observableArrayList(
"alice", "bob", "charlie", "denise")
override val root = vbox {
combobox<String> {
items = names
}
}
}
您可以为此使用 TornadoFX makeAutocompletable()
扩展。这是一个语法更严格的示例。请注意,通常您会将组合框的结果绑定到可观察的字符串 属性,因此构建器语法将是 combobox(name, names)
或类似的东西。
class MainView : View("Hello TornadoFX") {
val names = observableListOf("alice", "bob", "charlie", "denise")
override val root = vbox {
combobox(values = names) {
makeAutocompletable()
}
}
}
如果您需要更改过滤条件,您也可以将过滤函数传递给 makeAutocompletable
。