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
