I have been trying to create a AutoCompleteCombobox as well and was wondering why the popup gets closed every time you enter space, until I got your hint that the actual bug is in the ComboBoxListViewSkin class.
You just need to replace the skin of the ComboBox with a new one, which has an EventFilter.
ComboBoxListViewSkin<T> comboBoxListViewSkin = new ComboBoxListViewSkin<T>(comboBox);
comboBoxListViewSkin.getPopupContent().addEventFilter(KeyEvent.ANY, (event) -> {
if( event.getCode() == KeyCode.SPACE ) {
event.consume();
}
});
comboBox.setSkin(comboBoxListViewSkin);
I only tested this solution with Oracle Java 10 on Ubuntu, but it should work on other platforms as well.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…