<Swing Dev> [10] RFR JDK-8187957:Tab Size does not work correctly in JTextArea
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Wed Nov 8 18:24:12 UTC 2017
Hi, Prasanta.
Is it possible that dropping the float part of "tabSize" and "x" will
cause Off-by-one error? For example:
float tabSize=3.99f;
float x=21.9f;
int tabBase=0;
649 int ntabs = ((int) x - tabBase) / (int)tabSize;
650 return tabBase + ((ntabs + 1) * tabSize);
The result is: ntabs=7 -> 31.92 which is not correct.
I guess you will need something like this:
int ntabs = (int) Math.ceil((x - tabBase) / tabSize);
return tabBase + ntabs * tabSize;
The result is: ntabs=6 -> 23.94
On 08/11/2017 03:25, Prasanta Sadhukhan wrote:
> Hi All,
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8187957
> webrev: http://cr.openjdk.java.net/~psadhukhan/8187957/webrev.00/
>
> Please review a fix for an issue where it is seen string with "tab" in
> them are not aligned properly.
> This is because while calculating tab stop postion, it is calculating
> number of tabs in float value (an aftereffect of JDK-8156217
> <https://bugs.openjdk.java.net/browse/JDK-8156217>)
> so next tab stop location is coming out wrong.
> Fix is to use "number of tabs" as an integer value in order to calculate
> the tab position correctly.
>
> Regards
> Prasanta
--
Best regards, Sergey.
More information about the swing-dev
mailing list