2010-10-18 3 views
1

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

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

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

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

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

ответ

2

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

+0

Спасибо за совет, давайте посмотрим, смогу ли я быстро исправить ошибку с JList, а если нет, переключись. – Matthieu

+0

Много работы впереди, но я надеюсь на лучшее ... – Matthieu

+0

Я не видел «тривиальный» и JTable в ответе какое-то время :-) – keuleJ

0

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

+0

Я попробую ... – Matthieu

+0

Нет, это не помогло ... похоже, я собираюсь переехать в JTables ... надеюсь, что все будет немного проще ... – Matthieu