Class PrefixSelectionCustomizer


  • public class PrefixSelectionCustomizer
    extends Object

    This utility class can be used to customize a ChoiceBox or ComboBox and enable the "prefix selection" feature. This will enable the user to type letters or digits on the keyboard while the ChoiceBox or ComboBox has the focus. By default, the ChoiceBox or ComboBox will attempt to select the first item it can find with a matching prefix ignoring case.

    This feature is available natively on the Windows combo box control, so many users have asked for it. There is a feature request to include this feature into JavaFX (Issue RT-18064). The class is published as part of ContorlsFX to allow testing and feedback.

    Example

    Let's look at an example to clarify this. The combo box offers the items ["Aaaaa", "Abbbb", "Abccc", "Abcdd", "Abcde"]. The user now types "abc" in quick succession (and then stops typing). The combo box will select a new entry on every key pressed. The first entry it will select is "Aaaaa" since it is the first entry that starts with an "a" (case ignored). It will then select "Abbbb", since this is the first entry that started with "ab" and will finally settle for "Abccc".

      Keys typedElement selected
      aAaaaa
      aaaAaaaa
      abAbbbb
      abcAbccc
      xyz-

    Usage

    A common use case is to customize a ChoiceBox or ComboBox that has been loaded as part of an FXML. In this case you can use the utility methods customize(ChoiceBox) or customize(ComboBox). This will install a EventHandler that monitors the KeyEvent events.

    If you are coding, you can also use the preconfigured classes PrefixSelectionChoiceBox and PrefixSelectionComboBox as a substitute for ChoiceBox and ComboBox. In this case, PrefixSelectionComboBox includes some properties that will allow modifying the elapsed time before the selection is clear, listen to back space to clear the selection, show the popup when the control gains the focus, or set a different lookup criteria.

    See Also:
    PrefixSelectionChoiceBox, PrefixSelectionComboBox