On Tue, 4 Jul 2023 11:01:27 GMT, Tejesh R <t...@openjdk.org> wrote: > The header border uses `g.drawLine` whereas the JTable data grid lines uses > `SwingUtilities2.drawVLine` and `SwingUtilities2.drawHLine` to draw > horizontal and vertical lines. The SwingUtilities2 uses `Graphics.fillRect` > which contributes to the difference between the position of these two lines > which happens/visible at higher ui scaling (difference in alignment between > vertical lines of these two). The fix propose to use the same methods for > metal L&F of JTable header border paint. > CI testing shows green. > > 
src/java.desktop/share/classes/javax/swing/plaf/metal/MetalBorders.java line 1111: > 1109: > 1110: g.setColor( MetalLookAndFeel.getControlDarkShadow() ); > 1111: SwingUtilities2.drawVLine(g,w-1, 0, h-1); Suggestion: SwingUtilities2.drawVLine(g, w-1, 0, h-1); src/java.desktop/share/classes/javax/swing/plaf/metal/MetalBorders.java line 1112: > 1110: g.setColor( MetalLookAndFeel.getControlDarkShadow() ); > 1111: SwingUtilities2.drawVLine(g,w-1, 0, h-1); > 1112: SwingUtilities2.drawHLine(g,1, w-1,h-1); Suggestion: SwingUtilities2.drawHLine(g, 1, w-1, h-1); src/java.desktop/share/classes/javax/swing/plaf/metal/MetalBorders.java line 1114: > 1112: SwingUtilities2.drawHLine(g,1, w-1,h-1); > 1113: g.setColor( MetalLookAndFeel.getControlHighlight() ); > 1114: SwingUtilities2.drawHLine(g,0, w-2,0 ); Suggestion: SwingUtilities2.drawHLine(g, 0, w-2, 0 ); src/java.desktop/share/classes/javax/swing/plaf/metal/MetalBorders.java line 1115: > 1113: g.setColor( MetalLookAndFeel.getControlHighlight() ); > 1114: SwingUtilities2.drawHLine(g,0, w-2,0 ); > 1115: SwingUtilities2.drawVLine(g,0, 0, h-2); Suggestion: SwingUtilities2.drawVLine(g, 0, 0, h-2); test/jdk/javax/swing/JTableHeader/TableHeaderBorderPositionTest.java line 1: > 1: /* Is it possible to make an automated test by comparing pixel colors of images before and after fix? test/jdk/javax/swing/JTableHeader/TableHeaderBorderPositionTest.java line 51: > 49: 2. Check if the Table header border vertical lines are > 50: aligned with table data grid lines. > 51: 3. If there is a miss-match between them press FAIL, Suggestion: 3. If there is a mismatch between them press FAIL, ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/14766#discussion_r1251897705 PR Review Comment: https://git.openjdk.org/jdk/pull/14766#discussion_r1251898060 PR Review Comment: https://git.openjdk.org/jdk/pull/14766#discussion_r1251898963 PR Review Comment: https://git.openjdk.org/jdk/pull/14766#discussion_r1251899506 PR Review Comment: https://git.openjdk.org/jdk/pull/14766#discussion_r1251891816 PR Review Comment: https://git.openjdk.org/jdk/pull/14766#discussion_r1251890824