代号一种刷新形式

时间:2019-03-07 15:35:38

标签: forms refresh codenameone reload

在我的应用中,我想重新加载表格。问题是,每次我重新加载表单时,现有项目都会保留在屏幕上,随后会添加新项目。

例如,有两个按钮:buttonOne和buttonTwo。两者都放在一个容器中。容器被添加到窗体。

当我重新加载表单时,将buttonOne和buttonTwo再次添加到已经存在的两个按钮中。当我再次重新加载时,屏幕上的按钮1和2是四次。

我尝试过:

form.removeAll();
containerButton.removeAll();
containerButton.remove();
form.repaint();
form.refreshTheme();

// reload the form 

channels (); 

// the class

public Form form = new Form(new BoxLayout(2));

public void channels() { 

   container.add (buttonOne).add(buttonTwo);
   form.add (containerButton);

}

这种方法不能解决问题。我想念什么?

在此先感谢您的答复。

1 个答案:

答案 0 :(得分:1)

全部删除会从Container中删除组件(在本例中为表单内容窗格),但不会通过层次结构删除它们。

两者:

form.repaint();
form.refreshTheme();

更改层次结构时使用的API不正确。您需要使用revalidate()animateLayout()

“重新加载”不是代号One中存在的概念,因为这些小部件不知道您的数据。常见的傻瓜验证技巧是从头开始重新创建表单并将其显示。