Just curious.
Why do you need all three (for the test anyway):
1) scrollPane.setScrollPosition(p0);
2) scrollPane.setScrollPosition(p0.x, p0.y);
3) scrollPane.getHAdjustable().setValue(p0.x);
1 and 2 seem to be redundant. First you pass a Pont (I imagine) and then an X and Y (which is still a point).
And line 3) seems to be unrelated as you are just adjusting your Horz scrollbar.
What happens if you:
1) Remove Line 1 or Line 2
2) Remove Line 3
3) Move Line 3 to before lines 1 or 2.
Oftentimes Java needs a little tweaking to find a solution that works on multiple platforms the same. The Java Spec is definately interpreted subjectly so things can work strangely.
For example, at one point in Java 1.1, Netscape JVM required a window to be shown prior to adjusting it's size the MS JVM had no such requirement. You can do If-else for different JVM types, but it is best to just find a common solution that works for all. Ussually that just means "doing the same thing in a different order".
Hope this helps.