在我的应用程序中,我想重新加载表单。问题是,每次我重新加载表单时,现有项目都会保留在屏幕上,并且随后会添加新项目。
例如,有两个按钮:buttonOne 和buttonTwo。两者都在一个容器内。容器已添加到表单中。
当我重新加载表单时,buttonOne 和buttonTwo 会再次添加到已经存在的两个按钮中。当我再次重新加载时,按钮一和二在屏幕上出现四次。
我已经尝试过:
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);
}
这种方法并不能解决问题。我缺少什么?
预先感谢您的回复。
最佳答案
全部删除将从容器
(在本例中为表单内容 Pane )中删除组件,但不会通过层次结构删除它们。
两者:
form.repaint();
form.refreshTheme();
更改层次结构时使用的 API 不正确。您需要使用 revalidate()
或 animateLayout()
。
“重新加载”不是代号一中存在的概念,因为小部件不知道您的数据。一个常见的万无一失的技巧是从头开始重新创建表单并显示它。
关于forms - 代号 一张刷新表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55047528/