Shell s = new Shell(d); s.setSize(500,500); s.open(); ChildShell cs = new ChildShell(s); while(!s.isDisposed()){ if(!d.readAndDispatch()) d.sleep(); } d.dispose();