栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将MS文档打开到JFrame中

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将MS文档打开到JFrame中

好的,这是我的解决方案(使用Eclipse SWT),用于将MS Word文档打开到jframe中:

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.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.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.Display;import org.eclipse.swt.widgets.FileDialog;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);     } catch (SWTError e) {         System.out.println("Unable to open activeX control");         display.dispose();         return;     }     //fin abrimos un word     //abrimos un navegador//   Browser browser = new Browser(shell, SWT.NONE);//   browser.setLayoutData(new GridData(GridData.FILL_BOTH));//   browser.setSize(800, 600);//   browser.setUrl("http://www.google.com");     //fin abrimos un navegador     shell.open(); }        });        //el titulo//      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);//      } catch (SWTError e) {//          System.out.println("Unable to open activeX control");//          display.dispose();//          return;//      }//      shell.setSize(800, 600);//      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("&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(); }        });        MenuItem menuFileExit = new MenuItem(menuFile, SWT.CASCADE);        menuFileExit.setText("Exit");        menuFileExit.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) {     shell.dispose(); }        });    }    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);        }    }}

资源:EclipseSWT:http://www.eclipse.org/swt

谢谢大家!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506209.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号