import javax.swing.*;

public class DisabledJMenuItemArrowButtonNotDisabled {

    public JFrame createUI() throws InterruptedException, Exception {
        final JFrame frame = new JFrame();
        final JMenuBar menuBar = new JMenuBar();
        final JMenu menu = new JMenu("File");

        SwingUtilities.invokeAndWait(new Runnable() {

            @Override
            public void run() {

                menu.add(new JMenuItem("New"));
                menu.add("Open");

                JMenu subMenuTestmenu = new JMenu("SubMenuTest");
                JMenu disabledSubmenu = new JMenu("Submenu");
                disabledSubmenu.add(new JMenuItem("item"));
                disabledSubmenu.setEnabled(false);
                subMenuTestmenu.add(disabledSubmenu);

                JMenu enabledSubmenu = new JMenu("Submenu");
                enabledSubmenu.add(new JMenuItem("item"));
                subMenuTestmenu.add(enabledSubmenu);

                JMenu emptySubmenu = new JMenu("EmptySubmenu");
                subMenuTestmenu.add(emptySubmenu);

                subMenuTestmenu.add(new JMenuItem("EnabledItem"));
                JMenuItem item = new JMenuItem("DisabledItem");
                item.setEnabled(false);
                subMenuTestmenu.add(item);
                menuBar.add(menu);
                menuBar.add(subMenuTestmenu);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setJMenuBar(menuBar);
                frame.setSize(300,400);
                frame.setVisible(true);

            }
        });

        return frame;
    }

    public static void main(String []args) throws Exception {
        DisabledJMenuItemArrowButtonNotDisabled disabledJMenuItemArrowButtonNotDisabled = new DisabledJMenuItemArrowButtonNotDisabled();
        JFrame frames[] = new JFrame[1];
        try{
            frames[0] = disabledJMenuItemArrowButtonNotDisabled.createUI();
        }finally {
            SwingUtilities.invokeAndWait(new Runnable() {
                @Override
                public void run() {
                    if ( frames[0] != null) {
                      //  frames[0].dispose();
                    }
                }
            });
        }
    }
}

