gpt4 book ai didi

java - 为什么 HTMLPanel 不允许添加(小部件)?

转载 作者:搜寻专家 更新时间:2023-11-01 02:55:06 28 4
gpt4 key购买 nike

HTMLPanel 从 com.google.gwt.user.client.ui.Panel 继承了 add(Widget) 方法,但没有覆盖它。这会在调用时导致 UnsupportedOperationException。

如果像 FlowPanel 那样覆盖它会不会有任何问题?

@Override
public void add(Widget w) {
add(w, getElement());
}

背景:HTMLPanel 的构建速度比 FlowPanel 快(innerHTML 与 DOM 操作)。但是构建后,目前不允许动态添加元素*

* 除了不太有用的方法 add(Widget widget, String id) ,这使得不可能在文档中使用 HTMLPanel 两次。

最佳答案

我不确定不包括微不足道的覆盖背后的理由,但你可以调用 add(Widget, Element)如果你愿意,你自己。

我认为 HTMLPanel 的一个想法是您可以在面板的 DOM 中的任何位置添加一个小部件,因此它需要 add() 方法来强制您指定要添加小部件的确切位置。通过这种方式,您可以使用一些复杂的 html 构造 HTMLPanel,例如:"<div>...<div id="container"/>...<div>" , 然后调用 add(myWidget, "container") .

顺便说一句:add(Widget w, String id)只是一种方便的方法。它不会创建带有 id 的新元素,而是查找带有 id 的元素并调用 add(Widget, Element) .

关于java - 为什么 HTMLPanel 不允许添加(小部件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3077732/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com