Java 如何刷新lwuit表单?

Java 如何刷新lwuit表单?,java,java-me,lwuit,Java,Java Me,Lwuit,我在一个项目中工作,用户填写问卷,然后将答案提交给服务器。为了简单起见,我只在每个屏幕上保留了两个问题,在单击下一个命令后,用户将获得下两个问题。我在这个项目中使用了lwuit框架 为了减少内存需求,我只创建了一次表单,questLabel1,ansCombo1,questLabel2和ansCombo2。并根据当前帧(屏幕)设置其属性问题是如果您在表单2中,向下滚动到最后一个选项,然后单击“下一步”按钮,因为向下滚动的表单即使在下一个表单上也不会显示上面的组件尝试了很多东西。创建表单的新实例可

我在一个项目中工作,用户填写问卷,然后将答案提交给服务器。为了简单起见,我只在每个屏幕上保留了两个问题,在单击下一个命令后,用户将获得下两个问题。我在这个项目中使用了lwuit框架

为了减少内存需求,我只创建了一次
表单
questLabel1
ansCombo1
questLabel2
ansCombo2
。并根据当前帧(屏幕)设置其属性问题是如果您在表单2中,向下滚动到最后一个选项,然后单击“下一步”按钮,因为向下滚动的表单即使在下一个表单上也不会显示上面的组件尝试了很多东西。创建表单的新实例可能有效,但出于明显的内存原因,我不想使用它

还有其他解决办法吗


提前感谢,

您是否尝试过
form.revalidate()
?。因为这在修改容器层次结构并需要重做布局时非常有用


更新:使用
requestFocus()。它会自动聚焦在第一个(上部)组件上

要使其滚动以使组件可见,请选中
component
/
Container
API javadocs。我在lwuit页面上看到,这些建议使用了一些语义适合的方法-
scrollComponentToVisible
scrollRectToVisible
。“如果此容器可滚动,请确保组件在滚动中可见…”之类的内容

  // above extracted from comment to an answer to make it more visible
  // for the case if some reader has similar problem

可以使用form.refreshTheme()或form.revalidate()刷新表单。如果您已经对任何特定容器进行了更新,那么也可以对容器进行更新。

即使在下一个表单上,表单也不会显示上面的组件。您可以详细解释问题吗?您是否偶然发现了类似于由提供的功能?“请求将包含此项的可显示项设置为当前项,滚动可显示项以使此项可见,并可能将焦点分配给此项…”@gnat:他需要使用LWUIT,而不是Java ME。谢谢@gnat。。。但你建议的解决方案是lcdui框架,我使用lwuit,只允许使用lwuit功能。。。。我阅读了lcdui显示类的文档,我只需要一个类似的方法来完成我的任务…明白了。您是否检查了
组件
/
容器
API?我在Lwiit页面上看到的javadocs建议使用一些语义类似的方法
scrollComponentToVisible
scrollRectToVisible
。“如果此容器可滚动,请确保组件在滚动中可见…”之类的内容that@gnat... 非常感谢。。。它起作用了。。。。非常感谢你救了我一天。。。。上帝保佑uya我试过了。。。。调用层次结构为1。form.addComponent()的倍数为2。form.revalidate()3。requestFocus()4。form.show()。。。。。一切都好吗?还是我用错了?请看我之前评论中的通话顺序。。。我在步骤3中调用requestFocus()。@Amit:您的层次结构是正确的。您是否在
下一个
命令操作事件中再次显示了来自
。。顺便说一下,这个问题是通过@gnat…建议的方法解决的。。。。也谢谢你的帮助。。。我真的很感激。。。