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());
|
key, column.getModelIndex());
|
||||||
if (width != null) {
|
if (width != null) {
|
||||||
column.setPreferredWidth(width);
|
column.setPreferredWidth(width);
|
||||||
|
} else {
|
||||||
|
column.setPreferredWidth(getOptimalColumnWidth(table, column.getModelIndex()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -431,6 +433,24 @@ public class GUIUtil {
|
|||||||
public static void rememberTableColumnWidths(final JTable table) {
|
public static void rememberTableColumnWidths(final JTable table) {
|
||||||
rememberTableColumnWidths(table, null);
|
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