JList с переключаемыми заголовками групп

Можно ли сделать что-то вроде следующего изображения в Java?

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

изображение сгруппированного списка

Как вы можете видеть на изображении выше, это происходит из проводника Windows и представляет собой именно тот тип представления сгруппированного списка, который я хотел бы сделать с помощью JList в Java.


person John McDonnell    schedule 12.09.2011    source источник
comment
Может быть, org.netbeans.swing.outline.Outline?   -  person trashgod    schedule 13.09.2011
comment
@trashgod Это не совсем то, что я ищу ... Это деревья / столы.   -  person John McDonnell    schedule 13.09.2011


Ответы (1)


Не думаю, что я бы использовал JTable в этой ситуации.

Прежде всего, я бы использовал простой JPanel с DesignGridLayout, что-то вроде примера, показанного в приложение показа DesignGridLayout, раздел "Динамические макеты", пример "Пример 4 - То же самое со строками с отступом".

В этом примере вам придется изменить значки, используемые для эффекта контура (треугольники вместо шевронов в примере).

Затем я бы создал DrivePane, производный от JPanel, который содержал бы значок диска в виде JLabel (без текста), имя диска в виде JLabel, размер в виде полосы JProgress, размер в виде JLabel. Я бы, вероятно, использовал GridBagLayout вместо LayoutManager вместо DrivePane. Этот компонент будет использоваться для отображения каждого диска.

person jfpoilpret    schedule 13.09.2011
comment
«Я бы использовал GridBagLayout», исходящее от вас? Вероятно, следует удалить DesignGrid из моего списка настоятельно рекомендуемых менеджеров, если он не может сделать это легко ... усмехается :-) - person kleopatra; 13.09.2011
comment
@kleopatra хе-хе, очень хорошо ;-) Я полностью за то, чтобы использовать правильный инструмент для работы, и я не думаю, что DesignGrid сможет справиться с панелью дисковода, которая немного специфична. - person jfpoilpret; 13.09.2011