JList с пользовательским средством визуализации ячеек против Jtable

Мое текущее приложение использует JList, и все в порядке (единственная настройка, которую я сделал, это установить курсивный шрифт для некоторых строк).

Теперь я хочу «обновить» пользовательский интерфейс, и вместо меток в списке я хочу, чтобы флажок и текстовое поле могли обновлять запись.

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

Но теперь мне интересно, должен ли я просто изменить все это, чтобы использовать JTable. Мне все еще нужно добавить/удалить элементы в списке, хотя...

Любое предложение, которое лучше? и если я использую JList, как мне решить мою текущую проблему?


person Matthieu    schedule 18.10.2010    source источник


Ответы (2)


По моему опыту, использовать JTable обычно проще, поскольку он позволяет использовать более сложные данные и функциональные возможности «из коробки». Обычно, когда я пытаюсь сделать что-то, чего не может сделать JList, я просто переключаюсь на JTable, не задумываясь. То, что вы хотите, звучит как то, что должно быть довольно тривиально для реализации в таблице. Я предлагаю вам попробовать его с некоторыми фиктивными данными, чтобы увидеть, сможете ли вы заставить его выглядеть и работать так, как вам нравится (особенно если вы хотите, чтобы он выглядел как список).

person Carlos    schedule 18.10.2010
comment
Спасибо за совет, посмотрим, смогу ли я быстро исправить с помощью JList, а если нет, я переключусь. - person Matthieu; 19.10.2010
comment
Давненько я не видел тривиального и JTable в ответе :-) - person keuleJ; 22.01.2015

Попробуйте позвонить setLayoutOrientation(JList.VERTICAL) в свой JList. Это ограничит JList одним столбцом.

person Devon_C_Miller    schedule 18.10.2010
comment
Нет, это не помогло... похоже, я собираюсь перейти на JTables... надеюсь, это немного упростит ситуацию... - person Matthieu; 20.10.2010