On Mon, 6 Feb 2023 09:24:23 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> 
wrote:

>> Spec for 
>> [MetalLookAndFeel](https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java#L247)
>> says:
>> "...MetalLookAndFeel registers an entry for each of the classes
>> in the package javax.swing.plaf.metal that are named MetalXXXUI.
>> The string XXX is one of Swing's uiClassIDs. For the uiClassIDs
>> that do not have a class in metal, the corresponding class in
>> javax.swing.plaf.basic is used. For example, metal does not
>> have a class named "MetalColorChooserUI", as such,
>> javax.swing.plaf.basic.BasicColorChooserUI is used".
>> 
>> There is class MetalMenuBarUI, but the method populates given defaults table 
>> with the value
>> "javax.swing.plaf.basic.BasicMenuBarUI".
>> 
>> Added entry for MetalMenuBarUI..
>> CI tests including JCK tests are ok.
>
> Prasanta Sadhukhan has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Add MetalMenuBarUI in MetalL&F

Marked as reviewed by aivanov (Reviewer).

Is there really only Ocean theme? If I start SwingSet2, there are a handful of 
Metal themes under **Theme** menu.

If I change the theme, the colours of the menu bar also change.

What happens if I use a different theme instead of the default Ocean?

It's possible by passing `-Dswing.metalTheme=steel`. The menu bar is still 
styled.

So it looks all Metal themes use `MetalMenuBarUI`. As such, moving the 
registration of `MenuBarUI` class id from `OceanTheme` to `MetalLookAndFeel` 
makes sense. Especially, taking into account that javadoc for `MetalMenuBarUI` 
states, it “is responsible for the metal look and feel of `JMenuBar`s.”

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

PR: https://git.openjdk.org/jdk/pull/11646

Reply via email to