Многострочный вывод ячейки в JTable

363
25 декабря 2016, 19:39

Здравствуйте, столкнулся с проблемой, что никак не могу заставить исходниками из интернета, которые, как говорят их авторы "работают", заставить вывод в таблице JTable сделать многострочным.

Взял к примеру код отсюда: http://www.sql.ru/forum/707518/mnogostrochnyy-renderer-v-jtable

Добавляю данные в таблицу через DefaultTableModel.

Применяю исходник, как

table.setDefaultRenderer(String.class, new TextAreaRenderer());

Для теста можно взять таблицу отсюда: http://ru.jakeroid.com/primeryi-ispolzovaniya-jtable.html .

Прошу помощи, так как перерыл уже все и вывод многострочным так сделать и не получилось.

Answer 1

JTable определяет используемый рендерер по-умолчанию не по реальному классу объекта в ячейке, а по возвращаемому значению TableModel.getColumnClass. DefaultTableModel.getColumnClass всегда возвращает Object.class, поэтому назначенный для строк рендерер не используется.

Для решения проблемы можно назначить ваш рендерер для Object.class, переопределить getColumnClass в модели или задать рендерер столбцу через TableColumn.setCellRenderer:

// аргумент getColumn - номер колонки в порядке отображения
table.getColumnModel().getColumn( 0 ).setCellRenderer( new TextAreaRenderer() );
READ ALSO
Не срабатывает getView и другие странности Android Studio

Не срабатывает getView и другие странности Android Studio

ЗдравствуйтеИмеются классы унаследованные от Fragment и реализующие интерфейс CursorLoader

334
Ожидание нажатия кнопки

Ожидание нажатия кнопки

Как сделать, чтобы запущенный метод ждал нажатие кнопки?

796
Внедрение в контекстное меню android телефона

Внедрение в контекстное меню android телефона

Здравствуйте, подскажите пожалуйста есть ли возможность внедрить в меню "Копировать вставить" свой пункт? При нажатие на который мы бы переходили...

364
Некорректно работает поле oveflow:hidden

Некорректно работает поле oveflow:hidden

Поставил на блоки overlow:hidden и height:300pxПри наведении мышью на блок, он увеличивает высоту до 100%

354