import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

class Scratch {
    public static void main(String[] args) {
        // Set this to different values to see the difference
        int jMenuItemsToMake = 20_000;
        // Set this to true/false to see the difference. `true` is needed to see the bug.
        //System.setProperty("apple.laf.useScreenMenuBar", "true");
        //System.setProperty("apple.awt.application.name", "Test");
        JFrame frame = new JFrame("test");
        JMenuBar menuBar = new JMenuBar();
        JButton exit = new JButton(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        exit.setText("Exit");
        menuBar.add(exit);
        frame.setJMenuBar(menuBar);
        frame.setVisible(true);
        JMenu mainMenu = new JMenu("Test many items");
        menuBar.add(mainMenu);
        for (int i = 0; i < jMenuItemsToMake; i++) {
            mainMenu.add(new JMenuItem("Test " + i));
        }
    }
} 