On Fri, 12 Dec 2025 05:56:38 GMT, Prasanta Sadhukhan <[email protected]> wrote:
>> Calling `DefaultTableModel.setColumnIdentifiers()` resizes the row height of >> the table to default row height (16) even if the row height is changed to >> something other than the default using `JTable.setRowHeight(row, height).` >> The spec of `DefaultTableModel.setColumnIdentifiers()` >> https://docs.oracle.com/en/java/javase/24/docs/api/java.desktop/javax/swing/table/DefaultTableModel.html#setColumnIdentifiers(java.lang.Object[]) >> says that it >> `replaces the column identifiers in the model`, that is, the header field of >> the column is changed to the passed identifier and nowhere it is mentioned >> that row height would be changed. >> >> The issue happens because calling `DefaultTableModel.setColumnIdentifiers()` >> results in the firing of a `TableModelEvent` with HEADER_ROW event and >> JTable resets the `rowModel` for it irrespective of what the event is. >> Fix is to not reset the `rowModel` to keep the set rowHeight intact for >> HEADER_ROW event >> >> No other issue observed with CI with this fix.. > > Prasanta Sadhukhan has updated the pull request incrementally with one > additional commit since the last revision: > > Test headless test/jdk/javax/swing/JTable/TestRowHeightWithColIdentifier.java line 41: > 39: private static JTable table; > 40: private static volatile int oldRowHeight; > 41: private static volatile int curRowHeight; All these declarations can be moved inside now. test/jdk/javax/swing/JTable/TestRowHeightWithColIdentifier.java line 60: > 58: model.setColumnIdentifiers(new Object[] {"Check", "it out!"}); > 59: for (int row = 0; row < table.getRowCount(); row++) { > 60: System.out.println("AFter table rowHeight " + > table.getRowHeight(row)); Suggestion: System.out.println("After table rowHeight " + table.getRowHeight(row)); test/jdk/javax/swing/JTable/TestRowHeightWithColIdentifier.java line 64: > 62: curRowHeight = table.getRowHeight(0); > 63: if (curRowHeight != oldRowHeight) { > 64: throw new > RuntimeException("DefaultTableModel.setColumnIdentifiers() Clears JTable Row > Heights"); Suggestion: throw new RuntimeException("DefaultTableModel.setColumnIdentifiers() Clears JTable Row Height"); ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/28529#discussion_r2613219134 PR Review Comment: https://git.openjdk.org/jdk/pull/28529#discussion_r2613220592 PR Review Comment: https://git.openjdk.org/jdk/pull/28529#discussion_r2613221422
