RFR: 8375573: JTable ignores setPreferredWidth during initial layout when AUTO_RESIZE_LAST_COLUMN is enabled
Prasanta Sadhukhan
psadhukhan at openjdk.org
Wed Jan 21 06:14:07 UTC 2026
On Wed, 21 Jan 2026 05:16:35 GMT, Tejesh R <tr at openjdk.org> wrote:
>> AUTO_RESIZE_LAST_COLUMN handling was done in [JDK-8234071](https://bugs.openjdk.org/browse/JDK-8234071) but it didn't honour the preferred width if it is already been set for each column so when layouting is done, it only sees the `resizingColumn`
>> is set to AUTO_RESIZE_LAST_COLUMN and adjust only the last column and distribute width equally to all other column.
>>
>> Fix is made to honour the user-set preferred column width even if auto-resize mode is set to LAST_COLUMN
>
> src/java.desktop/share/classes/javax/swing/JTable.java line 3204:
>
>> 3202: // AUTO_RESIZE_LAST_COLUMN autoResizeMode
>> 3203: for (int i = 0; i < columnModel.getColumnCount(); i++) {
>> 3204: if (columnModel.getColumn(i).getPreferredWidth() != 75
>
> Why are we using hardcoded value here ? Any particular reason for checking width against value `75` ?
Because default width is such and there is no way to ascertain default width..
https://github.com/openjdk/jdk/blob/b5727d27622e1e321733f8d0e606b366984104be/src/java.desktop/share/classes/javax/swing/table/TableColumn.java#L523-L524
https://github.com/openjdk/jdk/blob/b5727d27622e1e321733f8d0e606b366984104be/src/java.desktop/share/classes/javax/swing/table/TableColumn.java#L556-L557
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29291#discussion_r2711110938
More information about the client-libs-dev
mailing list