第二次尝试打开Shell时如何修复Widget错误?

问题描述 投票:0回答:1

[当我尝试第二次打开子外壳时,发生窗口小部件处理错误。我正在尝试创建一个主Shell,并使用菜单栏和子shell来创建功能。

这里是printStackTrace:

org.eclipse.swt.SWTException: Widget is disposed
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.widgets.Widget.error(Unknown Source)
at org.eclipse.swt.widgets.Widget.checkWidget(Unknown Source)
at org.eclipse.swt.widgets.Shell.close(Unknown Source)
at it.anabasibdg.viste.Main$2.widgetSelected(Main.java:108)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at it.anabasibdg.viste.Main.open(Main.java:51)
at it.anabasibdg.viste.Main.main(Main.java:36)

这里是代码:

MenuItem mntmInserimento = new MenuItem(menu_2, SWT.NONE);
    mntmInserimento.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {

            if(cs1.isDisposed() == false) {


            cs1.layout();
            cs1.open();




        }else {

            cs1.open();



        }
    }
        });
java eclipse swt
1个回答
0
投票

一旦关闭外壳,它就会被丢弃,无法再次使用。

每次使用时,都必须从头开始创建一个新的外壳及其所有内容。

© www.soinside.com 2019 - 2024. All rights reserved.