在GWT中的removeFromParent之后重新附加图像

时间:2014-07-17 07:25:14

标签: java gwt

在GWT中调用removeFromParent后附加图像?

图像是从UiBinder创建的 e.g。

<g:HTMLPanel>
    <g:Image ui:field="myImage"/>
</g:HTMLPanel>

public class Testing extends Composite {
  interface MyUiBinder extends UiBinder<Widget, Testing> {}
  private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
  @UiField Image myImage;
  public Testing() {
    initWidget(uiBinder.createAndBindUi(this));
  }
  public void remove() {
    myImage.removeFromParent();
  }
  public void add() {
    ...
  }

2 个答案:

答案 0 :(得分:1)

您可以隐藏图片,而不是删除图片:

public void remove() {
  myImage.setVisible(false);
}
public void add() {
  myImage.setVisible(true);
}

在DOM中添加和删除对于浏览器而言是昂贵的。

答案 1 :(得分:1)

好吧,我想你可以添加一个引用容器面板的字段:

<g:HTMLPanel ui:field="imgPanel">
    <g:Image ui:field="myImage"/>
</g:HTMLPanel>
然后你可以去:

imgPanel.add(myImage);