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

StackOverflow https://stackoverflow.com/questions/2860250

Вопрос

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

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

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

Это было полезно?

Решение

При использовании Multi-Select лучше использовать список, чем в поле «комбо». Как идут метафоры GUI, люди ожидают, что комбинированная коробка будет одиноким выбором, в то время как списки могут быть либо.

Содержимое списка слишком огромно отображаться с помощью простого списка

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

Другие советы

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

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;
    }

}

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

Для достижения описанной функциональности я наконец решил «злоупотреблять» JMenuBar и добавить к нему несколько JCheckBoxMenuItems. Отказ GUI тогда отлично подходит цели (по крайней мере для меня), это просто обработка элемента, который рискует стать немного раздражать.

(Наконец, я определил немного логики над предметами, а затем может ограничить себя, чтобы обработать только один тип события)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top