1

下面总结一下 GWT 面板和小部件之间的基本关系是否安全?

  • GWT 面板被转换为可以包含子面板或/和子小部件的父 DOM 节点。
  • 一个 GWT 小部件被翻译成一个独立的叶子 DOM 节点。
  • GWT RootPanel 必须单独充当所有其他面板和小部件的根容器。
4

2 回答 2

3

这是 GWT 层次结构:

GWT 层次结构

面板也是一个小部件。面板是可以包含其他小部件和面板的小部件。通常它们用于布局,并且很少有直接与它们关联的数据 -例如,DisclosurePanel可以在标题中包含数据,而 TabPanel 的选项卡中。有些基于 HTMLtable元素(例如Horizo​​ntalPanel),有些基于 tag div

RootPanel是包含其他小部件的面板。此面板位于包含层次结构的顶部。默认它包含主机页面的标签body。RootPanel 可以包含任意数量的小部件,这些小部件将以其自然的 HTML 顺序排列。

请参阅文档

于 2012-05-09T14:12:36.837 回答
2

每个 GWT Widget 实例都有一个元素(可通过调用 访问getElement()),而面板只是一种 Widget——它们仍然有一个基本元素。大多数 Widget 构建更多内容来完成它们的工作(例如:CheckBox 是 aspan与 aninput和 a label),并且面板也可能需要多个元素。

小部件被附加到其他小部件不仅因为这是 DOM 需要排列的方式,而且还用于跟踪从 DOM 中附加和分离小部件。除此之外,这使得只有在实际附加时才连接事件处理程序成为可能,并在不再是页面的一部分时取消连接它们。

RootPanel 是一个特殊的小部件,它表示现有元素,可以是主体本身,也可以是具有给定 ID 的元素。可能有多个 RootPanel,但它们不应该嵌套。(也就是说,可能只有一个 RootLayoutPanel,一种专门的 RootPanel,它还处理将浏览器大小信息传递给子布局面板)。

这可能与您所追求的想法相同,但我想澄清一下,Widget 通常不仅仅是一个 DOM 节点。

于 2012-05-09T14:06:23.497 回答