GXT: уничтожение диалогового окна не работает

У меня есть класс Dialogbox:

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();

    }

Когда я пробую Composite:

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:

My In-Box Composite - это виджет:

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

Почему я не могу уничтожить свое диалоговое окно? Должен ли я сначала удалить виджет?

2 ответа

Да, если вы хотите просто скрыть диалоговое окно, то вы можете использовать dialogbox.hide()Если, если вы хотите удалить диалоговое окно, вы можете отсоединить / удалить его из родительского элемента, используя

dialogbox.removeFromParent()

Но, как я и ожидал, вы просто хотите скрыть диалоговое окно.

Здесь я дал два способа, вы можете использовать его в зависимости от ваших требований.

Использование dialogbox.hide() если вы хотите скрыть диалоговое окно.

Другие вопросы по тегам