JTable, JComboBox динамические значения - PullRequest
3 голосов
/ 02 декабря 2011

у меня JTable. В нем у меня мало столбцов. В 3 из них у меня есть JComboBox (каждая ячейка каждого столбца имеет уникальный JComboBox - т.е. весь столбец 1 - «яблоко», «баннана»; столбец 2 - «красный», «синий»; столбец 3 - «кошка» , "собака"). При запуске программы я хочу, чтобы они были пустыми. Позже после нескольких событий действия я наполняю их. Дело в том, что недостаточно добавлять JComboBox с одинаковыми значениями для каждого столбца. Потому что после добавления JComboBox к JTable необходимо реализовать TableCellRenderer и расширить DefaultCellEditor, иначе вы не увидите JComboBox в таблице, если не нажмете на нее (ошибка TableCellRenderer) или вместо comboBox вы получаете только строку Object.toString () в ячейке (ошибка DefaultCellRenderer). Итак, как мне обрабатывать JComboBox, TableCellRenderer и DefaultCellEditor, чтобы я мог динамически изменять значения целого JComboBox, который находится в JTable.

Ответы [ 3 ]

3 голосов
/ 02 декабря 2011

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

2 голосов
/ 02 декабря 2011

пожалуйста, прочитайте Использование поля со списком в качестве редактора , потому что JTable также знает JComboBox для Renderer и Editor, примеры здесь и пример EachRowEditor

0 голосов
/ 02 декабря 2011

Мне кажется, вам нужно переопределить и TableCellRenderer, и DefaultCellEditor, чтобы вернуть один и тот же JComboBox.Таким образом, вы можете передать JComboBox в качестве аргумента TableCellRenderer и DefaultCellEditor, а затем вернуть этот JComboBox подпрограммами getRenderer или getEditor указанных классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...