【发布时间】:2020-01-16 07:37:24
【问题描述】:
我有一个包含一长串项目的 JavaFx ComboBox。为了找到我想要的项目,当 ComboBox 下拉时,我开始输入部分描述并过滤包含我在 ComboBox 中显示的描述中键入的项目,并且 ComboBox 中的列表相应地缩小。这很好用。 但是,我希望能够在搜索字符串中包含一个空格键(空白),但只要我按下空格键,组合框就会隐藏。
我尝试添加一个事件过滤器,它确实捕获了空格键(和所有其他键),但在按下空格键时 ComboBox 隐藏自身之前没有。任何有关防止空格键导致 ComboBox 隐藏的建议将不胜感激。这是显示我尝试过的截断代码。
class MainController
{
@FXML
lateinit var cmbPwds: ComboBox<PwdItem>
init {
Platform.runLater {setKeyboardEvent()}
}
fun setKeyboardEvent() {
cmbPwds.addEventFilter(KeyEvent.ANY) {event ->
event.consume()
if(event.eventType == KeyEvent.KEY_TYPED)
print(if(event.character == " ") "BLANK" else event.character)
}
}
}
【问题讨论】:
-
这是一个已知的错误:JDK-8209991(和JDK-8087549)。不幸的是,似乎没有做任何工作来修复它。也许这个其他问题可以提供帮助:How to prevent closing of AutoCompleteCombobox popupmenu on SPACE key press in JavaFX.