【问题标题】:accessing codename one resource editor elements访问代号一资源编辑器元素
【发布时间】:2012-07-02 17:02:48
【问题描述】:

我正在尝试使用CODENAME ONE 快速创建一个模拟应用程序

我发现资源编辑器很难理解。

1) 我创建一个表单并在其上放置一个按钮。

2) 我创建了另一个带有消息“Hellow World”的表单

3) 我使用资源编辑器向 FORM 1 上的按钮添加了一个动作事件,netbeans 打开了一个实现该动作的方法。

4) 现在我希望在该方法中编写一些代码来显示 form2 ("Hello World") 。我该怎么做?

Q1) 在这种情况下如何引用 form2 的对象?

Q2)另外,在 form2 的显示上,我希望在其上添加一个文本框。我如何使用资源编辑器做到这一点?

我的基本问题是如何通过 CODE 引用资源编辑器创建的元素?

【问题讨论】:

    标签: lwuit lwuit-resource-editor codenameone


    【解决方案1】:

    最简单的方法是将按钮设置为命令,然后在动作中选择目标表单(注意这将有效地禁用动作事件)。

    您也可以通过代码调用:showForm("formName", null);

    要将元素添加到现有表单,您需要决定它们应该在哪里。例如。目标表单有一个容器,您要在其中放置 TextArea?

    只需在 GUI 构建器中将 Container 命名为“MyDestContainer”。现在,当您想要添加文本区域时,您可以使用以下内容获取指向容器的指针:

     Container dest = findMyDestContainer(Display.getInstance().getCurrent());
    

    【讨论】:

    • 我认为这里有一个错误。我试过这个: 1)声明两种形式 Form1 和 Form2 。 2)为Form2添加一个事件postShow。 3)但是,.. Form2 的上述事件在 form2 实际显示在显示器上之前被调用。因此,声明: Container dest = findMyDestContainer(Display.getInstance().getCurrent());失败!(返回空值)。这是因为,屏幕上当前处于活动状态的表单仍然是 Form1。(尽管调用了 showForm("Form2"),null)。 4)最后,当 form2 在显示器上可见时,什么都没有发生,因为 form2 的 postShow 已经发生了。
    • 您需要在 form2 显示时调用 find 。在 form2 事件之前执行此操作。您需要保留状态才能“知道”要添加到哪个表单中。
    • 没错!我试图在 form2 显示时调用“查找”。然而,form2 的 Post Show 事件是在显示 form2 之前发生的。因此,该查找不起作用。我也尝试在显示事件之前在 form2 中“查找”......这不起作用(我认为它无论如何都不应该在这里工作......因为它在 form2 在显示器上处于活动状态之前发现)。
    【解决方案2】:

    你可以为这一波做的

    showForm("Ingreso_Recibo", null);
    

    【讨论】:

      猜你喜欢
      • 2022-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 2011-10-26
      • 2011-10-13
      • 1970-01-01
      相关资源
      最近更新 更多