Use optimal width if no width found
This commit is contained in:
parent
d0f3f7b345
commit
e342574ef3
@ -424,6 +424,8 @@ public class GUIUtil {
|
||||
key, column.getModelIndex());
|
||||
if (width != null) {
|
||||
column.setPreferredWidth(width);
|
||||
} else {
|
||||
column.setPreferredWidth(getOptimalColumnWidth(table, column.getModelIndex()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -431,6 +433,24 @@ public class GUIUtil {
|
||||
public static void rememberTableColumnWidths(final JTable table) {
|
||||
rememberTableColumnWidths(table, null);
|
||||
}
|
||||
|
||||
public static int getOptimalColumnWidth(JTable table, int columnIndex) {
|
||||
TableColumn column = table.getColumnModel().getColumn(columnIndex);
|
||||
Component headerRenderer = table.getTableHeader().getDefaultRenderer()
|
||||
.getTableCellRendererComponent(table, column.getHeaderValue(), false, false, 0, columnIndex);
|
||||
|
||||
int maxWidth = headerRenderer.getPreferredSize().width;
|
||||
|
||||
for (int row = 0; row < table.getRowCount(); row++) {
|
||||
Component renderer = table.getCellRenderer(row, columnIndex)
|
||||
.getTableCellRendererComponent(table, table.getValueAt(row, columnIndex), false, false, row, columnIndex);
|
||||
maxWidth = Math.max(maxWidth, renderer.getPreferredSize().width);
|
||||
}
|
||||
|
||||
// Optional: Add some padding
|
||||
int padding = 5; // adjust this value as needed
|
||||
return maxWidth + padding;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user