On Wed, 18 Jun 2025 19:28:18 GMT, Damon Nguyen <dngu...@openjdk.org> wrote:

> Compilation error on windows with `WindowsButtonUI` used. Replaced it with 
> `BasicButtonUI` to maintain overriding the `paintText` method but this was 
> not the same as Windows L&F buttons. I attempted to import `WindowsButtonUI` 
> and extending it, but the class is `final`. Instead, I chose to add a 
> LineBorder in the same way as when a Rectangle was drawn to keep the same 
> test behavior. It seems the extra 1 pixel width is unnecessary now when 
> testing, so the changes only include removing `MyButtonUI` and adding a 
> LineBorder.
> 
> This updated test now compiles and runs as expected. The test has all of the 
> text within the blue button border. There does not seem to be any overlapping 
> or out of bounds text as originally described with the original test.

test/jdk/javax/swing/plaf/windows/bug4991587.java line 83:

> 81:     }
> 82: 
> 83:     static class MyButtonUI extends WindowsButtonUI {

Use composition here: extend `BasicButtonUI`, create a `WindowsButtonUI`¹ 
object and forward *all the methods*² to the instance of `WindowsButtonUI`. In 
the `paintText` method, draw the rectangle and then call the implementation of 
your `WindowsButtonUI`.

¹ Use `WindowsButtonUI.createUI` to create an instance.
² All the overridden methods in `WindowsButtonUI`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25883#discussion_r2156600650

Reply via email to