2014-04-23 4 views

답변

0

OleClientSite (..., File)를 사용해야합니다.

public class WordSample { 

private Shell shell; 
private OleFrame frame; 
private OleClientSite site; 

public WordSample() { 
Display display = new Display(); 
shell = new Shell(display); 
shell.setLayout(new FillLayout()); 
shell.setSize(800, 600); 

Menu bar = new Menu(shell, SWT.BAR); 
shell.setMenuBar(bar); 
MenuItem fileMenu = new MenuItem(bar, SWT.CASCADE); 
fileMenu.setText("&File"); 
Menu menuFile = new Menu(fileMenu); 
fileMenu.setMenu(menuFile); 
MenuItem menuOpen = new MenuItem(menuFile, SWT.CASCADE); 
menuOpen.setText("&Open"); 
menuOpen.addSelectionListener(new SelectionAdapter() { 
public void widgetSelected(SelectionEvent e) { 
FileDialog fileDialog = new FileDialog(shell, SWT.OPEN); 
fileDialog.setFilterExtensions(new String[] {"*.doc"}); 
String doc = fileDialog.open(); 
if (doc != null && !doc.equals("")) { 
openDocument(doc); 
} 
} 
}); 

frame = new OleFrame(shell, SWT.NONE); 
frame.setFileMenus(new MenuItem[] {fileMenu}); 

shell.open(); 
while (!shell.isDisposed()) { 
if (!display.readAndDispatch()) display.sleep(); 
} 
display.dispose(); 
} 

private void openDocument(String doc) { 
if (site != null && !site.isDisposed()) site.dispose(); 
site = new OleClientSite(frame, SWT.NONE, "Word.Document", new 
File(doc)); 
site.doVerb(OLE.OLEIVERB_SHOW); 
} 

public static void main(String[] args) { 
WordSample sample = new WordSample(); 
} 

}