这段代码在Gwt中,但如果您只是了解Java,那么您仍然可以回答这个问题.
好的,我有2个面板:myPanel1和myPanel2,然后我多次将myPanel2添加到myPanel1
myPanel1.add(myPanel2);
myPanel1.add(myPanel2);
myPanel1.add(myPanel2);
myPanel1.add(myPanel2);
....
Run Code Online (Sandbox Code Playgroud)
然后我计算小部件的数量 myPanel1
System.out.println("No of Widgets inside myPanel1: "+ myPanel1.getWidgetCount());
Run Code Online (Sandbox Code Playgroud)
结果是" No of Widgets inside myPanel1: 1"
为什么myPanel1中的Widgets数量仍为1,即使我们多次将myPanel2添加到myPanel1中?
我不是GWT开发人员,但我怀疑这是在调用Panel.add(Widget)哪些文件这些步骤(强调我的):
必须按正确的顺序进行几项重要操作才能正确添加或向面板插入Widget.并非所有这些步骤都与每个小组相关,但必须考虑所有步骤.
- 验证:执行任何健全性检查以确保Panel可以接受新的Widget.示例:检查插入时的有效索引; 如果有最大容量,请检查Panel是否已满.
- 调整为重新插入:某些面板需要处理Widget已经是此Panel的子级的情况.示例:执行重新插入时,可能需要调整索引以考虑Widget的删除.请参见ComplexPanel.adjustIndex(Widget,int).
- 分离子项:从现有父项中删除小组件(如果有).大多数Panel都会在Widget上调用Widget.removeFromParent().
- 逻辑附加:应更新Panel的任何状态变量以反映新Widget的添加.示例:Widget将在适当的索引处添加到Panel的WidgetCollection中.
- 物理附着:Widget的元素必须直接或间接地物理连接到Panel的元素.
- 采用:调用采用(Widget)最终确定添加为最后一步.
换句话说,当您向一个面板添加内容时,它会从当前所属的任何面板中删除,如果有的话.
说实话,目前还不清楚你的预期效果是什么 - 你仍然只有两个对象...... 单个小部件多次出现在面板中意味着什么?如果需要多个小部件,请创建多个对象.
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |