Как создать выпадающий список в колебании Java с несколькими выбор объекта?

Я знаю JList и JComboBox. Мне нужно поле комбинированного списка выпадающая функциональность с функциональностью множественного выбора это JList обеспечивает.

Это вызвано тем, что содержание списка слишком огромно, чтобы быть отображенным с помощью простого списка. Я также должен выбрать несколько объектов, иначе я был бы доволен JComboBox.

Какие-либо предложения?

7
задан Toon Krijthe 9 August 2012 в 06:34
поделиться

3 ответа

При использовании мультивыбора лучше использовать список, а не комбобокс. В метафорах GUI люди ожидают, что комбобокс - это одиночный выбор, в то время как списки могут быть либо.

содержимое списка слишком велико, чтобы отобразить его с помощью простого списка

Поместите JList в JScrollPane. Вы можете вызвать setVisibleRowCount(int) на JList, чтобы указать, сколько строк за раз должно быть показано.

9
ответ дан 6 December 2019 в 14:01
поделиться

Вы можете создать собственное средство визуализации ячеек для поля со списком и добавьте флажки к этим компонентам, чтобы вы могли отмечать и снимать их. Вы должны сделать что-то вроде этого:

public class MyComboBoxRenderer implements ListCellRenderer {

    private String[] items;
    private boolean[] selected;

    public MyComboBoxRenderer(String[] items){
         this.items = items;
         this.selected = new boolean[items.lenght];
    }

    public Component getListCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int index) {
         // Create here a JLabel with the text
         // Create here a JCheckBox
         // Add them to a layoutmanager
         return this;
    }

    public void setSelected(int i, boolean flag)
    {
         this.selected[i] = flag;
    }

}
3
ответ дан 6 December 2019 в 14:01
поделиться

Если ваши данные имеют иерархический характер, рассмотрите компонент NetBeans Outline , описанный в Объявление новой таблицы Swing Tree Table и в этом ответ . Вот Текущая разрабатываемая версия API.

2
ответ дан 6 December 2019 в 14:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: