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