On Thu, 7 Apr 2022 09:17:02 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> 
wrote:

> Issue was when printing a JTable which sits inside a JScrollPane and the 
> table is scrolled down to the end to about 1000th row, only the first page is 
> printed. 
> This is because when the table is scrolled down to last page, the bounds.y 
> becomes -ve 
> [x=0,y=-15260,width=968,height=16000]
> so the check `if (!((table.getBounds()).intersects(clip)))` is satisfied only 
> for 1st page where bounds just intersects the clip 
> [x=0,y=0,width=968,height=1296]
> but subsequent pages clip 
> [[x=0,y=1296,width=968,height=1296], 
> [x=0,y=2592,width=968,height=1296], 
> [x=0,y=3888,width=968,height=1296] etc is not intesecting so they are not 
> printed
> 
> This is a regression of JDK-8081491 which was **reworked** in JDK-8236907 
> where the bounds calculation and usage is made same as in BasicTableUI
> We need to use the same resetted bounds for this intersection calculation too 
> as was done for JDK-8236907
> 
> Tested against JDK-8081491, 8170349, JDK-8236907 testcases along with other 
> regression tests and all are OK (link in JBS)

This pull request has now been integrated.

Changeset: f710393e
Author:    Prasanta Sadhukhan <psadhuk...@openjdk.org>
URL:       
https://git.openjdk.java.net/jdk/commit/f710393e352b0945ad64df3ee5ccd34f082c2b63
Stats:     124 lines in 2 files changed: 121 ins; 2 del; 1 mod

8257810: Only First page are printed in JTable.scrollRectToVisible

Reviewed-by: aivanov

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

PR: https://git.openjdk.java.net/jdk/pull/8141

Reply via email to