RFR: 8311031: JTable header border vertical lines are not aligned with data grid lines [v12]

Prasanta Sadhukhan psadhukhan at openjdk.org
Wed Aug 2 06:39:59 UTC 2023


On Tue, 1 Aug 2023 13:05:37 GMT, Tejesh R <tr at 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.
>> 
>> ![image](https://github.com/openjdk/jdk/assets/94159358/f6d1d822-55ba-4ad3-9914-d3f68b67a6c5)
>
> Tejesh R has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 14 additional commits since the last revision:
> 
>  - Review fix
>  - Merge branch 'master' of https://git.openjdk.java.net/jdk into branch_8311031
>  - Review fix
>  - Review fix
>  - Review fix
>  - Review fix
>  - Review fix
>  - Review fix
>  - Review comment fix
>  - Updated based on review comments
>  - ... and 4 more: https://git.openjdk.org/jdk/compare/acb0339e...3e76abaa

test/jdk/javax/swing/JTableHeader/TableHeaderBorderPositionTest.java line 99:

> 97:                     saveBufferedImage(bufferedImage, "failureImage.png");
> 98:                     throw new RuntimeException("Test Failed at <" + x + ", " + y + ">");
> 99:                 }

Ideally this failure check should be done outside EDT else I think you will get InvocationTargetException instead of RuntimeException

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14766#discussion_r1281458815



More information about the client-libs-dev mailing list