2014-02-19 38 views
0

我有一个对话框类:GXT:destorying对话框没有工作

public class Dialogbox { 

    public static final Window dialogbox = new Window(); 

    public Dialogbox() { 
     dialogbox.setAnimateMinimize(true); 

     dialogbox.setWidth(469); 
     dialogbox.setHeight(487); 
     dialogbox.setShowMinimizeButton(true); 
     dialogbox.setAutoSize(true); 
     dialogbox.setCanDragReposition(true); 
     dialogbox.setCanDragResize(true); 
     dialogbox.setIsModal(true); 
     // dialogbox.setShowModalMask(true); 
     dialogbox.addCloseClickHandler(new CloseClickHandler() { 
      @Override 
      public void onCloseClick(CloseClientEvent event) { 
       // TODO Auto-generated method stub 
       dialogbox.destroy(); 
      } 
     }); 

    } 

    public void show(Widget name, String txt) { 
     dialogbox.setTitle(txt); 
     dialogbox.addItem(name); 
     dialogbox.setPadding(10); 
     AnimationCallback callback = null; 
     dialogbox.animateMove(400, 100, callback, 1000); 


     dialogbox.show(); 

    } 

当我尝试的复合材料:

f list = new f(); 
dia.show(f, "price"); 

我得到的错误:

[ERROR] 15:34:20.020:WARN:Canvas:isc_WidgetCanvas_1:Attempt to access destroyed widget in the DOM - destroy() called at invalid time (eg: mid-draw) or invalid method called on destroy()d widget. Stack Trace: 

我In-Box Composite是一个小工具:

Canvas canvas = new Canvas(); 
    canvas.addChild(btnNewButton); 
    initWidget(canvas); 

为什么我不能销毁我的对话框?我必须先删除小部件吗?

回答

0

如果您想要隐藏对话框,请使用dialogbox.hide()

+0

thx,我用清晰的口味测试它我添加一个新项目,它工作 – user3110458

1

是的,如果你只想隐藏对话框, 那么你可以使用 dialogbox.hide() 凡为,如果你想删除的对话框, 那么你可以卸下/从中删除它的父元素使用

dialogbox.removeFromParent() 

但是,正如我的期望,你只是想隐藏对话框。

在这里,我给出了两种方法,您可以根据您的要求使用它。

+0

如果像'dialogbox.removeFromParent'一样删除,我可以再次使用它吗? – Cataclysm

+0

很明显,不。如果你想再次使用它,你必须把它添加到它的父母。 – Azeez