Это на самом деле работает нормально для меня. Но попробуйте добавить display: inline;
в div.
Попробуйте использовать вторую таблицу JTable, которая использует ту же модель столбцов, что и ваша таблица данных, и добавьте данные нижнего колонтитула в эту таблицу. Добавьте вторую таблицу (нижний колонтитул) под исходную таблицу.
JTable footer = new JTable(model, table.getColumnModel());
panel.add(BorderLayout.CENTER, table);
panel.add(BorderLayout.SOUTH, footer);
Единственный когда я сделал это, я просто добавил строку в модель, например:
@Override
public int getRowCount() {
return _tableContents.size() + 1;
}
_tableContents - это, конечно, фактические данные, лежащие в основе моей модели. Конечно, вам нужно знать о дополнительной строке в модели (в таких вызовах, как setValueAt (...))
Удачи.
Я думаю, это лучший подход (но, конечно, не самый простой ) было бы взглянуть на исходный код для компонента JTableHeader
, посмотреть, как он работает, а затем создать свой собственный JTableFooter
компонент. Вы можете повторно использовать делегат пользовательского интерфейса JTableHeader
для нижнего колонтитула, я думаю, что основные отличия будут в методе getHeaderRect ()
, где он определяет границы данной плитки заголовка столбца .
Вы можете попробовать реализовать свой собственный TableCellRenderer , который заменяет отображаемое содержимое последней видимой строки нижним колонтитулом. Однако это не будет исправлено в нижней части таблицы, скорее всего, при прокрутке она будет перемещаться вверх и вниз.
Вот еще одно решение, упомянутое в базе данных ошибок java
Решение, которое подходит для меня, - это рисование границы для области просмотра (ваш JTable должен находиться внутри JScrollPane). ..