Zwein
Zwein

Reputation: 11

How to Keep JMenuItem visible after press?

Just a simple GUI Shows a JMenu >> JMenuItem One of those menu items shows a JPopupMenu

My issue is that the JMenuItems' are setVisible(false) on press, by default I've tried it with MouseAdapter too.

public class SubMenu extends JFrame
{
    JMenuBar menubar = new JMenuBar();
    JMenu File = new JMenu("File");

    JMenuItem New = new JMenuItem("New");

    JMenuItem Open = new JMenuItem("Open");

    JMenuItem Save = new JMenuItem("Save");

    JMenuItem Import = new JMenuItem("Import");
    JPopupMenu Import_Popup = new JPopupMenu();
    JMenuItem Import_Pop_1 = new JMenuItem("Import newsfeed list...");
    JMenuItem Import_Pop_2 = new JMenuItem("Import bookmarks...");
    JMenuItem Import_Pop_3 = new JMenuItem("Import mail...");

    JMenuItem Exit = new JMenuItem("Exit");

    SubMenu()
    {
        setTitle("SubMenu");
        setSize(500, 500);
        setLocation(200, 200);
        setVisible(true);
        setLayout(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        menubar.setBounds(0, 0, 2000, 30);
        
        add(menubar);
        menubar.add(File);

        File.add(New);
        File.add(Open);
        File.add(Save);
        File.add(new JSeparator());
        File.add(Import);
        File.add(new JSeparator());
        File.add(Exit);

        add(Import_Popup);
        Import_Popup.add(Import_Pop_1);
        Import_Popup.add(Import_Pop_2);
        Import_Popup.add(Import_Pop_3);

// The issue is Right here.
        Import.addActionListener(new ActionListener() 
        {
            @Override
            public void actionPerformed(ActionEvent e) 
            {
                Import_Popup.show(Import, Import.getWidth(), 0);
            }
        });
        
    }// Constructor
    public static void main(String[] args) 
    {
        new SubMenu();
    }
}

Raises this exception on Press :

component must be showing on the screen to determine its location

Is there a way to keep JMenuItems visible after press?

Upvotes: 0

Views: 65

Answers (0)

Related Questions