This release comes with fantastic news for Windows 10 users/developers.
Native window decorations on Windows 10
This enables dark frame/dialog title bar and embedded menu bar with all JREs while still having:
- native Window 10 border drop shadows
- native Window 10 resize functionality
- Windows 10 snapping functionality
- native Windows 10 system window menu when right-clicking on title bar or left-clicking on application icon
This feature is enabled by default on Windows 10.
If you don't like/want it, you can disable it with:
UIManager.put( "TitlePane.useWindowDecorations", false );
It is also possible to disable only the embedded menu bar (and keep the dark title pane) with:
UIManager.put( "TitlePane.menuBarEmbedded", false );
It is also possible to disable this on command line with following VM options:
If you have following code in your app, you can remove it (no longer necessary):
// enable window decorations JFrame.setDefaultLookAndFeelDecorated( true ); JDialog.setDefaultLookAndFeelDecorated( true );
Right aligned components in title pane with embedded menu bar on Windows 10
A usual way to add a component to the right side of the menu bar is to first add a horizontal glue component (
Box.createHorizontalGlue()) and then the own component. In a non-embedded menu bar it looks like this:
This now also works for embedded menu bars:
Example for adding own component to right side of menu bar:
JButton myButton = new JButton(); myButton.setIcon( new FlatSVGIcon( "myicon.svg" ) ); myButton.putClientProperty( "JButton.buttonType", "toolBarButton" ); myButton.setFocusable( false ); myMenuBar.add( Box.createHorizontalGlue() ); myMenuBar.add( myButton );
Unified backgrounds on Windows 10
To give your app an even more modern look, you can now use unified backgrounds for window title bar, menu bar and main content. This is similar to what IntelliJ IDEA does.
UIManager.put( "TitlePane.unifiedBackground", true );
You can try this in the FlatLafDemo app with "Options > Unified Title Bar".