簡體   English   中英

無法將JMenu移至JMenuBar

[英]Cannot move JMenu to JMenuBar

我試圖將菜單結構從JMenu移到JMenuBar。 上面的代碼根據TEST顯示了不同的菜單。 對於TEST == 1,我希望菜單欄中有aa bb,但僅顯示aa? 代碼顯示了問題,這不是我的真實代碼....

public class Test {

    public static void main(String[] args) {

        int TEST = 1; // or 2

        JMenu menu = new JMenu("a");

        JMenu menu2 = new JMenu("aa");
        menu.add(menu2);

        menu2 = new JMenu("bb");
        menu.add(menu2);

        JMenuBar mbar = new JMenuBar();

        if (TEST == 1) {
            for (int i = 0; i < menu.getItemCount(); i++) {
                mbar.add(menu.getItem(i));
            }
        }

        if (TEST == 2) {
            mbar = new JMenuBar();
            mbar.add(menu);
        }

        JFrame frame = new JFrame();
        frame.setJMenuBar(mbar);
        frame.setSize(400, 200);
        frame.setVisible(true);
    }
}

呵呵,棘手的一個。 通過執行

mbar.add(menu.getItem(i));

您剛剛添加到mbar menu將從menu刪除。 在下一次迭代中, menu.getItemCount()返回1並且for循環結束。 這將工作:

if (TEST == 1) {
    int m = menu.getItemCount();
    for (int i = 0; i < m; i++) {
         mbar.add(menu.getItem(0));
    }
}

暫無
暫無

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

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