在我的应用中,我想重新加载表格。问题是,每次我重新加载表单时,现有项目都会保留在屏幕上,随后会添加新项目。
例如,有两个按钮: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);
}
这种方法不能解决问题。我想念什么?
在此先感谢您的答复。
答案 0 :(得分:1)
全部删除会从Container
中删除组件(在本例中为表单内容窗格),但不会通过层次结构删除它们。
两者:
form.repaint();
form.refreshTheme();
更改层次结构时使用的API不正确。您需要使用revalidate()
或animateLayout()
。
“重新加载”不是代号One中存在的概念,因为这些小部件不知道您的数据。常见的傻瓜验证技巧是从头开始重新创建表单并将其显示。