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

Alexey Ivanov aivanov at openjdk.org
Wed Jul 5 11:58:53 UTC 2023


On Wed, 5 Jul 2023 04:35:18 GMT, Tejesh R <tr at openjdk.org> wrote:

>> I strongly believe it should be an automated test. It may even be headless, if possible. There are a couple of examples which compare border rendering.
>> 
>> You don't need to store images, just count the number of pixels of a particular colour. If you detect an inconsistency, fail the test. You may need to tweak the width or height of columns and rows so that old method results in visible inconsistencies in rendering.
>
> How will counting the number of pixels of a particular color help in validating the fix? I was planning to take a portion of image which includes header and 1st row and then check the column of vertical line from header to data, if all are same color then its a straight line, else fail the test... But I was not able to compare the data, some inconsistencies were there with rgb values.... Will try to work on that again......

I wasn't clear enough, however, you understood it. There are three possible colours in the header: background, highlight and shadow. There's also text which we can ignore; if anti-aliasing is disabled, it will be solid colour only; alternatively the headers may have no text at all or a space.

So, the header should start with highlight colour, there should be 2 pixels of it at 225%, right? Then the highlight is followed by the background until you find the shadow colour. It should also be 2 pixels. The shadow should be followed by the highlight colour of the next cell, there should be no background colour between highlight and shadow.

This algorithm works in the [`ScaledEtchedBorderTest.java`](https://github.com/openjdk/jdk/blob/00ac46c06d8a7154a007cd67092bd80226a02fc3/test/jdk/javax/swing/border/EtchedBorder/ScaledEtchedBorderTest.java) test, see the [`checkBorder` method](https://github.com/openjdk/jdk/blob/00ac46c06d8a7154a007cd67092bd80226a02fc3/test/jdk/javax/swing/border/EtchedBorder/ScaledEtchedBorderTest.java#L151-L154).

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

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



More information about the client-libs-dev mailing list