On Mon, 15 Jul 2024 09:18:08 GMT, Prasanta Sadhukhan <[email protected]> 
wrote:

>> When a JTable is resized with` JTable.setAutoResizeMode` set to ` 
>> AUTO_RESIZE_LAST_COLUMN` then it behaves exactly as if I specified 
>> `AUTO_RESIZE_ALL_COLUMNS`. 
>> This is because when `JTable.doLayout` tries to resize the columns, it 
>> checks which column to resize by calling `getResizingColumn `and in absence 
>> of any column info, it resizes all, so during `setAutoResizeMode` the 
>> resizing column needs to be set, which is being done for 
>> AUTO_RESIZE_LAST_COLUMN in this fix.
>> No regression test is provided as it can be easily checked with 
>> SwingSet2->JTable(demo)->Autoresize mode (set to "Last Column")
>
> Prasanta Sadhukhan has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Prevent AIOBE

src/java.desktop/share/classes/javax/swing/JTable.java line 1273:

> 1271:                         tableHeader.setResizingColumn(
> 1272:                                 
> columnModel.getColumn(columnModel.getColumnCount() - 1));
> 1273:                     }

Check added to guard against the possibility of 
`DefaultTableColumnModel.getColumn` which according to spec can throw AIOBE
` if columnIndex is out of range: (columnIndex < 0 || columnIndex >= 
getColumnCount())`

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/20107#discussion_r1677533997

Reply via email to