On Mon, 30 Mar 2026 10:18:12 GMT, Prasanta Sadhukhan <[email protected]> wrote:
>> The protected methods ScrollBarUI#getTrackBounds() >> ScrollBarUI#getThumbBounds() have >> become inaccessible since JRE9 which is required to override the paint >> method and to paint the knob/thumb so we can consider making them public. >> >> A CSR will be raised if this access expansion is accepted.. > > Prasanta Sadhukhan has updated the pull request incrementally with one > additional commit since the last revision: > > Expose API in ScrollBarUI I don't know the original ticket author's intent, but I can think of a few use cases where this feature is helpful and extending BasicScrollBarUI is actually a nonstarter. For ex: A few years ago I wanted to create a tooltip-like control for sliders. The finished result resembles: https://github.com/user-attachments/assets/76dc92f9-e5f3-4b8e-a32c-ff70e8407928 This was very hard/hacky, because the thumb rect was not publicly accessible. (I ended up calling `slider.paint(g)` with a custom Graphics2D that recorded paint instructions to tease out where the thumb was being painted.) In this case I wanted to preserve the existing L&F (either AquaSliderUI or WindowsSliderUI), so creating a new subclass of a BasicSliderUI wouldn't work. The same basic idea could apply to scrollbars: I might want to show a tooltip that points to the scrollbar thumb. Maybe as you scroll it shows some identifying information about what section/chapter that portion relates to. Or I could create a subclass of JScrollBar that preserves the L&F's default SliderUI, but the subclass decorates it. Similar to how IntelliJ shows stripes in the scrollbar: <img width="937" height="268" alt="image" src="https://github.com/user-attachments/assets/b2e08b64-c4f7-40a8-b931-648b23f78f97" /> Again: I want to preserve the L&F's SliderUI for a native-looking experience, so subclassing BasicSliderUI is problematic. (Admittedly: scrollbars are a little trickier than sliders because AquaScrollBarUI does NOT extend BasicScrollBarUI. WindowsScrollBarUI does...) My point is: making these methods public may be useful in cases where extending BasicScrollBarUI is problematic. ------------- PR Comment: https://git.openjdk.org/jdk/pull/30209#issuecomment-4156700746
