2017-01-01 108 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