RFR: 8257810: Only First page are printed in JTable.scrollRectToVisible [v8]

Prasanta Sadhukhan psadhukhan at openjdk.java.net
Tue May 10 04:07:46 UTC 2022


> 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)

Prasanta Sadhukhan 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 11 additional commits since the last revision:

 - Merge branch 'master' of https://git.openjdk.java.net/jdk into JDK-8257810
 - Test updated
 - Test fix
 - Test fix
 - Test fix
 - Test updated
 - Test updated
 - Test updated
 - Fix
 - Fix
 - ... and 1 more: https://git.openjdk.java.net/jdk/compare/04708cc9...d94ae83d

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/8141/files
  - new: https://git.openjdk.java.net/jdk/pull/8141/files/f5634e80..d94ae83d

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=8141&range=07
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=8141&range=06-07

  Stats: 442880 lines in 6156 files changed: 342765 ins; 43394 del; 56721 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8141.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8141/head:pull/8141

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



More information about the client-libs-dev mailing list