Jcombobox множественный выбор



У меня есть jcombobox в моем приложении.
и я хочу, чтобы он поддерживал множественный выбор (как это делается в jlist).
есть ли какой-нибудь пример кода?

554   2  

2 ответов:

Я думаю, что это невозможно, если вы не используете JList, как вы сказали.

The JCOMBOBOX API сообщает:

Пользователь может выбрать значение из выпадающего списка, который появится на странице запросы пользователей.

И учебник JComboBox :

Списки не очень привлекательны, но они более уместны, чем поля со списком, когда количество элементов велико (скажем, более 20) или когда выбор нескольких элементов может быть действительный.

Обновление:

Я рассмотрел этот ответ, потому что на самом деле это "возможно" сделать с помощью ListCellRenderer, добавив флажок к каждому элементу. Пожалуйста, рассмотрите этот ответ , чтобы реализовать это "решение".

Однако я не думаю, что это хорошая идея по следующим причинам:

  1. есть элемент управления, подобный JList, который допускает множественный выбор;
  2. элемент управления JComboBox предназначен только для одного элемента выбор;
  3. для меня нет смысла по-прежнему использовать элемент управления JComboBox и разрешать множественный выбор.

Это не совсем невозможно, но есть много работы, чтобы сделать эту работу. Вам нужно будет создать свои собственные классы, чтобы расширить / реализовать все это:

  • ListCellRenderer (так что вы можете отметить выбранные элементы, когда всплывающее окно показывает и указать (по крайней мере), что есть несколько вариантов выбора, когда это не так).
  • JComboBox (очевидно)
  • BasicComboBoxUI (именно здесь находится большая часть работы)
  • BasicListUI (по крайней мере, у меня был to)
  • ComboBoxModel
И вам нужно будет разработать свой собственный класс, который реализует ItemListener, MouseListener, PopupMenuListener, MouseMotionListener, PropertyChangeListener, KeyListener, ListSelectionListener.
Подсказка: вам нужно будет переопределить множество методов createXXXListener () в классах пользовательского интерфейса, чтобы обойти множество мест, где отбрасываются множественные выборки.
[И он по-прежнему не позволяет использовать редактируемую комбинацию множественного выбора.]

Comments

    Ничего не найдено.