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

Prasanta Sadhukhan psadhukhan at openjdk.java.net
Thu Apr 7 09:45:08 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)

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

Commit messages:
 - Fix
 - Fix
 - 8257810: Only First page are printed in JTable.scrollRectToVisible

Changes: https://git.openjdk.java.net/jdk/pull/8141/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=8141&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8257810
  Stats: 189 lines in 2 files changed: 186 ins; 2 del; 1 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