Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // properly resize columns in a jtable.
- // uses header renderers and cell renderers.
- public void calculateCorrectColumnWidths() {
- JTableHeader header = table.getTableHeader();
- TableCellRenderer defaultHeaderRenderer = null;
- if (header != null) {
- defaultHeaderRenderer = header.getDefaultRenderer();
- }
- TableColumnModel columnModel = table.getColumnModel();
- TableModel tableModel = table.getModel();
- int margin = columnModel.getColumnMargin();
- for (int i = columnModel.getColumnCount() - 1; i >= 0; --i) {
- TableColumn column = columnModel.getColumn(i);
- int columnIndex = column.getModelIndex();
- int width = -1;
- TableCellRenderer cellRenderer = column.getHeaderRenderer();
- if (cellRenderer == null) {
- cellRenderer = defaultHeaderRenderer;
- }
- if (cellRenderer != null) {
- Component c = cellRenderer.getTableCellRendererComponent(
- table,
- column.getHeaderValue(),
- false,
- false,
- -1,
- i);
- width = c.getPreferredSize().width;
- }
- for (int row = tableModel.getRowCount() - 1; row >= 0; --row) {
- TableCellRenderer r = table.getCellRenderer(row, i);
- Component c = r.getTableCellRendererComponent(table,
- tableModel.getValueAt(row, columnIndex),
- false, false, row, i);
- width = Math.max(width, c.getPreferredSize().width);
- }
- if (width >= 0) {
- column.setPreferredWidth(width + margin);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement