簡體   English   中英

JMenu內部JMenu無效

[英]JMenu not active inside JPanel

我需要在我的Java swing GUI中創建帶有多個chechbox的comboBox。 我的第一個想法是使用其自己的CellRenderer創建一個自定義的comboBox,但是后來我決定采用一個更“友好”的解決方案,並在內部使用帶有JCheckBox項的JMenu。

問題是,當我創建菜單並將其放置在我的JPanel中時,該菜單不處於活動狀態,並且在單擊時無法打開。 任何想法可能是這種行為的原因嗎? 甚至可以像這樣使用JMenu嗎?

這是我的代碼示例:

JMenu menu;
panelCenter.add(new JLabel("Selection"));;
panelCenter.add(prepareSelection(menu));

private JMenu prepareSelection(JMenu menu) {
        menu = new JMenu("Select items");

        for (int i = 0; i < 10; i++) {
           JCheckBoxMenuItem item = new JCheckBoxMenuItem("item " + i);
           menu.add(item);
        }

        return menu;
    }

謝謝你的幫助!

添加JMenuBar的位置不在JPanel中,而是在layeredPane中。 您應該添加JMenuBar,它將位於layeredPane的頂部。 其余內容將由您的contentPane覆蓋。 JMenuBar啟動后,您可以隨時修改JMenus和JMenuItems。

這是Ivor Horton的Beginning Java的圖片: 在此處輸入圖片說明

解決了。 首先將JMenuBar添加到我的JPanel中,然后將JMenus添加到其中。

menuBar = new JMenuBar();
prepareSelection(menuInput); // prepare menus
prepareSelection(menuOutput);
panelCenter.add(menuBar);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM