title: Shall is not opening and Menu is not showing in swt in java
body: <p>I want to embed microsoft word in java . My program will open a word document file in jframe . After searching a lot , I have found the following solution : <a href="https://stackoverflow.com/questions/4883937/open-ms-documents-into-jframe">Open MS documents into JFrame</a></p>
  
  <p>The code to embed MS documents into Jframe is as follows : </p>
  
  <pre><code> import java.awt.Canvas;
  import java.io.File;
  
  import javax.swing.JFrame;
  
  import org.eclipse.swt.SWT;
  import org.eclipse.swt.SWTError;
  import org.eclipse.swt.SWTException;
  import org.eclipse.swt.awt.SWT_AWT;
  import org.eclipse.swt.browser.Browser;
  import org.eclipse.swt.events.SelectionAdapter;
  import org.eclipse.swt.events.SelectionEvent;
  import org.eclipse.swt.events.SelectionListener;
  import org.eclipse.swt.layout.FillLayout;
  import org.eclipse.swt.layout.GridData;
  import org.eclipse.swt.ole.win32.OLE;
  import org.eclipse.swt.ole.win32.OleClientSite;
  import org.eclipse.swt.ole.win32.OleFrame;
  import org.eclipse.swt.widgets.Button;
  import org.eclipse.swt.widgets.Display;
  import org.eclipse.swt.widgets.Event;
  import org.eclipse.swt.widgets.FileDialog;
  import org.eclipse.swt.widgets.Listener;
  import org.eclipse.swt.widgets.Menu;
  import org.eclipse.swt.widgets.MenuItem;
  import org.eclipse.swt.widgets.Shell;
  
  
  public class AbrirWordJFrame {
      static OleClientSite clientSite;
      static OleFrame frame;
  
      public static void main(String[] args) {
          final Display display = new Display();
          final Shell shell = new Shell(display);
  
          JFrame jframe=new JFrame("Mi jframe");
          final Canvas canvas=new Canvas();
          jframe.getContentPane().add(canvas);
          jframe.setSize(800, 600);
          jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          jframe.setVisible(true);
  
          display.asyncExec(new Runnable() {
              public void run() {
                  Shell shell = SWT_AWT.new_Shell(display, canvas);
                  shell.setSize(800, 600);
  
                  //abrimos un word
                  shell.setText("Word Example");
                  shell.setLayout(new FillLayout());
                  try {
                      frame = new OleFrame(shell, SWT.NONE);
                      //esto abre un documento existente
                      clientSite = new OleClientSite(frame, SWT.NULL, new File("prueba.doc"));
                      //esto abre un documento en blanco
  //                  clientSite = new OleClientSite(frame, SWT.NONE, "Word.Document");
                      addFileMenu(frame); 
                      System.out.println(" I am in run method ");
                  } catch (SWTError e) {
                      System.out.println("Unable to open activeX control");
                      display.dispose();
                      return;
                  }  
                  shell.open(); 
  
              }
          }); 
  //      
          while (!shell.isDisposed()) {
              if (!display.readAndDispatch())
                  display.sleep();  
          }
          display.dispose();
      }
  
      static void addFileMenu(OleFrame frame) {
          final Shell shell = frame.getShell(); 
          Menu menuBar = shell.getMenuBar();
          if (menuBar == null) {
              menuBar = new Menu(shell, SWT.BAR);
              shell.setMenuBar(menuBar);
          } 
          MenuItem fileMenu = new MenuItem(menuBar, SWT.CASCADE);
          fileMenu.setText("&amp;File");
          Menu menuFile = new Menu(fileMenu);
          fileMenu.setMenu(menuFile);
          frame.setFileMenus(new MenuItem[] { fileMenu }); 
  
          MenuItem menuFileOpen = new MenuItem(menuFile, SWT.CASCADE);
          menuFileOpen.setText("Open..."); 
          menuFileOpen.addSelectionListener( new SelectionAdapter() {
              public void widgetSelected(SelectionEvent e) {
                  fileOpen();
  
                  System.out.println(" I am in widgetSelected method ");
              }
          });
          MenuItem menuFileExit = new MenuItem(menuFile, SWT.CASCADE);
          menuFileExit.setText("Exit");
          menuFileExit.addSelectionListener(new SelectionAdapter() {
              public void widgetSelected(SelectionEvent e) {
                  shell.dispose();
              }
          }); 
      }
  
      static class fileSaveItemListener implements SelectionListener {
          public void widgetSelected(SelectionEvent event) {
              fileOpen();
  
              System.out.println(" I am in widgetSelected method ");
          }
  
          public void widgetDefaultSelected(SelectionEvent event) {
              fileOpen();
  
              System.out.println(" I am in widgetSelected method ");
          }
        }
  
      static void fileOpen() {
          FileDialog dialog = new FileDialog(clientSite.getShell(), SWT.OPEN);
          dialog.setFilterExtensions(new String[] { "*.doc" });
          String fileName = dialog.open();
          if (fileName != null) {
              clientSite.dispose();
              clientSite = new OleClientSite(frame, SWT.NONE, "Word.Document", new File(fileName));
              clientSite.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);
          }
      }
  }
  </code></pre>
  
  <p>But I cannot open Shell window . There is also no menu in it . How can I open shall and show menu in it ? Please help me   </p>