On Mon, 18 Aug 2025 16:31:00 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:
> **Problem:** > > The colors for the accelerators are cached in static fields: > `disabledForeground`, `acceleratorSelectionForeground` and > `acceleratorForeground`. As soon as this field is set to a non-`UIResource` > value, the value cannot change. > > **Fix:** > > Remove the static fields for accelerator from `WindowsMenuItemUI` and use the > fields inherited from `BasicMenuItemUI`, pass these fields as parameters to > static methods. > > Additionally, I formatted the calls to `WindowsMenuItemUI.paintMenuItem` in > one consistent way. > > I removed the redundant javadoc from `paintMenuItem` and added the missing > `@Override` annotation. > > I provided a regression test. The test also reproduces > [JDK-8365375](https://bugs.openjdk.org/browse/JDK-8365375) that was resolved > in #26743. test/jdk/com/sun/java/swing/plaf/windows/MenuItem/MenuItemAcceleratorColor.java line 126: > 124: Color acceleratorSelectionForeground = > UIManager.getColor("MenuItem.acceleratorSelectionForeground"); > 125: UIManager.put("MenuItem.acceleratorForeground", Color.GREEN); > 126: UIManager.put("MenuItem.acceleratorSelectionForeground", > Color.RED); We are testing 2 of 3 static fields..I guess since we do not have test for these fields explicitly, we can test the 3rd one too which is `disabledForeground` like putting `UIManager.put("MenuItem.disabledForeground", Color.BLUE) ` and do `quit.setEnabled(false)` in which case it should be BLUE ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/26826#discussion_r2283953201