在CodenameOne

时间:2016-02-04 09:18:59

标签: java codenameone

对于我的主应用程序,我需要一个用于导航目的的自定义容器,请参阅here(Stackoverflow)。

由于发布的解决方案对我不起作用(我尝试使用简单的System.out.println),我开始了一个新项目来理解容器嵌入是如何工作的,但它不能按照我的预期工作。

所以新的应用程序是带有橙色的Hi World应用程序。

我在GUI设计器中创建了一个新的空白容器,并添加了3个按钮。

  1. 我在GUI设计器中创建了一个新的空白容器,并添加了3个按钮。
  2. 我在容器
  3. 中添加了一个actionListener
  4. 我将容器添加到表单
  5. 我的StateMachine看起来像这样:

    @Override
    protected void onButtonCont_ButtonAction(Component c, ActionEvent event) {
    
    System.out.println("button1 clicked");
    }
    
    @Override
    protected void onButtonCont_Button1Action(Component c, ActionEvent event) {
    
        System.out.println("button2 clicked");
    }
    
    @Override
    protected void onButtonCont_Button2Action(Component c, ActionEvent event) {
    
        System.out.println("button3 clicked");
    }
    

    (我创建的容器名为ButtonCont ..)在StateMachine或其他地方没有修改任何其他内容!

    现在我启动了应用程序并单击了按钮 -​​ 但没有任何反应。

    所以我

    1. 打开GUI Builder
    2. 选择MainForm
    3. 一个接一个地选择了三个按钮
    4. 为每个
    5. 添加了ActionListeners

      现在我的StateMachine看起来像这样:

      @Override
      protected void onMain_Button2Action(Component c, ActionEvent event) {
      
          System.out.println("button3 -now- clicked");
      }
      
      @Override
      protected void onMain_Button1Action(Component c, ActionEvent event) {
      
          System.out.println("button2 -now- clicked");
      }
      
      @Override
      protected void onMain_ButtonAction(Component c, ActionEvent event) {
      
          System.out.println("button1 -now- clicked");
      }
      

      (除了之前的onButtonCont-方法)

      启动应用程序并单击按钮会产生以下输出:

      button1 -now- clicked
      button3 -now- clicked
      button2 -now- clicked
      

      我做错了什么?

1 个答案:

答案 0 :(得分:1)

我自己找到了答案。

您只需添加一个嵌入式容器并选择“embedded | [null]”到您自己的容器

,而不是将容器添加到“用户定义”部分下的表单中。