All of this has been confirmed to work on macOS Big Sur (11.2.3) and JDK 16.
To put the menu bar at the top of the screen, use the following
System.setProperty("apple.laf.useScreenMenuBar", "true");
// Use this method to set the menu bar.
jFrame.setJMenuBar(jMenuBar);
Add this library to your build...
https://github.com/0x4a616e/NSMenuFX
...and then call...
MenuToolkit.toolkit().setAppearanceMode(AppearanceMode.AUTO);
...before anything else.
To make Swing look modern, check out this (free, open source) Swing look & feel:
https://www.formdev.com/flatlaf/
Bonus: support for a wide variety of themes, including several based on IntelliJ - perfect if you happen to be working on a developer tool and want to provide a switchable theme experience.
You probably want to implement handlers for many of the integration APIs in java.awt.Desktop for basic application integration.
A LOT of other integration is also available by browsing through the list of material available around the java.desktop module.
An example of building installers with nice, small JVMs can be found at: