2009-09-02 25 views
0

我試圖將菜單結構從JMenu移動到JMenuBar中。以上代碼根據TEST顯示不同的菜單。對於TEST == 1,我期望在菜單欄中顯示aa bb,但只顯示aa。代碼顯示的問題,它不是我真正的代碼....無法將JMenu移動到JMenuBar

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); 
    } 
} 

回答

0

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

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

剛纔添加到mbarmenu刪除菜單。在下一次迭代menu.getItemCount()返回1並且您for循環結束。這一個將工作:

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

Dammned!我想我有這個年頭了,不記得了。謝謝 ! – PeterMmm 2009-09-02 10:50:55