JComboBox в определенной ячейке JTable

У меня есть проблема, которая сводит меня с ума.

У меня есть классический JTable с несколькими столбцами. Мне нужно, чтобы конкретный столбец вместо простых текстовых значений в своей ячейке содержал ComboBox. Я МНОГО искал, все, что я нашел, это примеры, которые будут реализовывать один и тот же JComboBox в каждой ячейке столбца, но это не то, что мне нужно: мне нужно, чтобы каждая ячейка столбца имела поле со списком с разными значениями.

Может ли кто-нибудь дать мне практический пример того, как это сделать, пожалуйста?

Спасибо.

PS: я использую NetBeans.


person aur0n    schedule 13.02.2012    source источник
comment
См.: stackoverflow.com/questions/4211452/ одним способом.   -  person camickr    schedule 13.02.2012
comment
Можете ли вы добавить пример того, что вы хотите, чтобы сделать ваш запрос более понятным?   -  person Alex B    schedule 13.02.2012
comment
В приведенном выше примере показан подход с использованием ArrayList. Если вам нужно что-то более динамичное, возможно, вместо этого вам нужно использовать Hashmap. Затем вы можете сопоставить номер строки с моделью поля со списком. Когда вы динамически добавляете строки, вы также динамически обновляете хеш-карту.   -  person camickr    schedule 15.02.2012


Ответы (1)


TableCellEditor.getTableCellEditorComponent() принимает строку в качестве аргумента. Используйте существующий пример в качестве руководства и используйте аргумент строки этого метода, чтобы решить, какие значения должны быть предложены полем со списком.

person JB Nizet    schedule 13.02.2012
comment
Здравствуйте JB Nizet, спасибо за быстрый ответ. Я попытался поэкспериментировать, вот что у меня получилось: [ссылка]pastebin.com/vTfzAS5x Конечно не работает, у меня две ошибки. Один говорит, что на GetTableCellEditorComponent нельзя ссылаться в статическом контексте (но это не так!!), другой не может найти символ setCellEditor(javax.swing.DefaultCellEditor. Пожалуйста, не могли бы вы помочь мне в этом? Был бы очень признателен . - person aur0n; 13.02.2012
comment
@ aur0n: TableComboBoxByRow является примером. - person trashgod; 14.02.2012
comment
Спасибо TrashGod, это было очень полезно. Мне удалось заставить его работать, но у меня есть два вопроса: я пытался динамически добавлять больше строк с определенным полем со списком, но это не работает с новыми добавленными строками? Пробовал несколько раз разными методами. ;-( Предложения? - person aur0n; 14.02.2012
comment
@aur0n, Зачем ты задаешь вопросы, если не обращаешь внимания на все комментарии/ответы? Я дал ссылку на этот код за 8 часов до ссылки в этом ответе. - person camickr; 15.02.2012
comment
Извините @camickr, это первый раз, когда я пишу на stackoverflow, поэтому я немного дезориентирован. Я действительно сожалею. Вернемся к проблеме, до сих пор не исправили. Есть ли способ динамически добавлять новые строки с определенными ComboBox с помощью вашего кода? - person aur0n; 15.02.2012