Java - доступный для поиска JComboBox - выбор ключа и выпадающий список - PullRequest
0 голосов
/ 06 мая 2019

Мне нужно создать редактируемый JComboBox, в котором возможные варианты отфильтровываются из исходного списка на основе символа, введенного в поле от пользователя.Мне удалось найти решение для StackOverflow, но у меня все еще есть две проблемы:

  1. Когда я ввожу клавишу, она отображается как выбранная, поэтому следующая клавиша нажата вместо добавления вНастоящий текст заменяет текст.Я хочу, чтобы пользователь мог печатать так, как будто это JTextField.

  2. Мне бы хотелось, чтобы при наборе текста отображались первые 5 (n?) Возможных совпадающих значений.

Я пытался читать онлайн и в спецификации, но не могу найти решение.

JTextComponent editor = (JTextComponent) myComboBox.getEditor().getEditorComponent();
myComboBox.setSelectedItem("");
editor.addKeyListener(new KeyAdapter() {
   public void keyReleased(KeyEvent evt) {
     String[] myValues = Utils.myValues(..get a list o value somehow ...);

     String searchText = (String) myComboBox.getEditor().getItem();

     List<String> filterArrayString = new ArrayList<>();
     for (int i = 0; i < myValues.length; i++) {
       if (myValues[i].toLowerCase().contains(searchText.toLowerCase())) {
           filterArrayString.add(myValues[i]);
       }
     }
    myComboBox.setModel(new DefaultComboBoxModel(filterArrayString.toArray()));
    myComboBox.getEditor().setItem(searchText);
   }
});

Фильтр при нажатии буквы, буква выбрана

Фильтр при вводе буквы выделен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...