2017-01-01 98 views
2

enter image description here我想在側面菜單上添加two按鈕。 One頂部other底部所以我增加了以下code其沒有工作,其顯示的圖像添加。 如何在topbottom上添加sidemenu上的按鈕?如何在sidemenu頂部和底部添加按鈕?

enter image description here

Toolbar addToolbar(Form f) { 


    Toolbar toolbar = new Toolbar(); 

     f.setToolbar(toolbar); 

     Container container = new Container(new BorderLayout()); 
     container.add(BorderLayout.NORTH,new Button(" north")); 
     container.add(BorderLayout.SOUTH,new Button(" south")); 
     toolbar.addComponentToSideMenu(container); 

    } 


void addToolbars(Form fs) { 
     Form f = new Form(" Test"); 
     Toolbar toolbar = new Toolbar(); 

     f.setToolbar(toolbar); 

     Container container = new Container(new BorderLayout()); 
     container.add(BorderLayout.NORTH, new Button(" north")); 
     container.add(BorderLayout.CENTER, new Button("center")); 
     container.add(BorderLayout.SOUTH, new Button(" south")); 
     toolbar.addComponentToSideMenu(container); 

     Container mySideMenuContainer = new Container() { 
      @Override 
      public void initComponent() { 

       getParent().setLayout(new GridLayout(1, 1)); 
       getParent().setScrollableY(false); 
       getParent().revalidate(); 
      } 
     }; 
     mySideMenuContainer.addComponent(container); 
     toolbar.addComponentToSideMenu(mySideMenuContainer); 
     f.show(); 
    } 

容器只包含屏幕的一半,顯示圖像

回答

0

沒有爲沒有API,它不是支持。

然而,就像Codename One中的任何東西一樣,你有時可以把東西拼湊在一起。

E.g.這樣的事情應該工作作爲一個黑客,雖然我不能保證,因爲它依賴於addComponentToSideMenu方法的實施細節它會永遠的工作:

Container mySideMenuContainer = createSideMenuContainer() { 
    @Override 
    public void initComponent() { 
     Container p = getParent(); 
     if(!(p.getLayout() instanceof BorderLayout)) { 
      Component[] cmp = new Component[p.getComponentCount()]; 
      for(int iter = 0 ; iter < cmp.length ; iter++) { 
       cmp[iter] = p.getComponentAt(iter); 
      } 
      p.removeAll(); 
      p.setLayout(new BorderLayout()); 
      if(cmp.length == 1) { 
       p.add(BorderLayout.CENTER, cmp[0]); 
      } else { 
       p.add(BorderLayout.NORTH, cmp[0]); 
       p.add(BorderLayout.CENTER, cmp[1]); 
      } 
      p.revalidate(); 
     } 
    } 
}; 
toolbar.addComponentToSideMenu(mySideMenuContainer); 
+0

它顯示顯示java.lang.NullPointerException這行 mySideMenuContainer.getParent( ).setLayout(new GridLayout(1,1)); – tizbn

+0

好吧,我看到一個問題,修復了代碼,使黑客更「hackish」 –

+0

我已經使用這個新的代碼,其整個代碼添加上面的問題與其截圖。它只覆蓋了屏幕的一半如何覆蓋整個屏幕的高度? – tizbn

相關問題