由于项目中有用到swing 嵌入word,(需要可以编辑 或不编辑也要可以修改字体大小或修改字体颜色)
在网络上google 一直都没有答案,于是自己有想了以下几种方案:
1: 嵌入浏览器,浏览器在嵌入word
2: swing 嵌入swt窗体,swt 可操作word
3: 采用jacob
实践:
1:需要swing 先嵌入浏览器,在浏览器 嵌入 可编辑word。
最终 卡在 可编辑word 上面
2: 需要架构swing 与swt 的桥梁 ,最终实现,一会贴出代码!!!
3: 可以进行数据交互,但无法进行展示
贴出代码:做过笔记,也希望能给有用的朋友!
贴代码:
import java.awt.BorderLayout;
import java.awt.Canvas;
import javax.swing.JFrame;
import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.layout.FillLayout;
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.Shell;
public class Sword extends JFrame {
private static final long serialVersionUID = -7511601547609623217L;
private static OleFrame oleFrame1;
public static void main(String[] args) {
final JFrame frame = new JFrame();
//关键 使用 canvas 进行交互
Canvas canvas = new Canvas();
frame.getContentPane().add(canvas,BorderLayout.CENTER);
frame.setVisible(true);
frame.setSize(800, 600);
final Display display = new Display();
//利用SWT_AWT.new_Shell 交互
final Shell shell = SWT_AWT.new_Shell(display,canvas);
shell.setLayout(new FillLayout());
shell.layout();
shell.setSize(800, 600);
initGUI(shell);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
private static void initGUI(Shell shell) {
try {
FillLayout thisLayout = new FillLayout(org.eclipse.swt.SWT.HORIZONTAL);
shell.setLayout(thisLayout);
// shell.setSize(229, 54);
{
oleFrame1 = new OleFrame(shell, SWT.NONE);
{
try {
OleClientSite site = new org.eclipse.swt.ole.win32.OleClientSite(
oleFrame1, org.eclipse.swt.SWT.NONE,
"Word.Document");
site.setBounds(0, 0, 104, 54);
site.doVerb(org.eclipse.swt.ole.win32.OLE.OLEIVERB_SHOW);
} catch (org.eclipse.swt.SWTException e) {
String str = "Create OleClientSite Error"
+ e.toString();
System.out.println(str);
return;
}
}
}
shell.layout();
} catch (Exception e) {
e.printStackTrace();
}
}
}
实现过程中参考以下:
http://niubt.360doc.com/content/081214/10/7635_2120288.html
http://blog.csdn.net/fafey/archive/2006/05/10/721988.aspx
以上代码 只做了嵌入动作,存在几个点: 嵌入的word 没有滚动条,运行的时候要等1秒才会出来word,其他慢慢修补了。
至少能嵌入进去,不用找jacob jidi 以及ocx 麻烦!!! 总算做出来了 hight 下!!!
分享到:
相关推荐
Java Html DJNativeSwing.jar DJNativeSwing-SWT.jar
关于swing嵌入ocx或dll影响控件的问题,自己研究了一下,今天发出来给大家共享一下。swing调用OCX或dll的方法有很多,其中包括:jcob、comfyj、jawin、jni、jna等等很多方式,但是如果要显示dll或ocx的控件在swing...
用DJnative-swt和swt包开发的调用本地浏览器和webkit浏览器的示例
java swing 实现的word文档转换成pdf文档,可直接运行.
java Swing界面化小工具,将word内容转换成特定格式的JSON写入EXCEL的小工具,用于将word的题库转换成excel的格式,导入到供应商系统中,如有需要大家可下载解压后双击后缀exe文件直接使用,也可以反编译后修改写入...
NULL 博文链接:https://gxblluojialin.iteye.com/blog/2028156
java开发可安装程序exe的swing嵌套浏览器汇总整理。。
Java swing 实现word文档转pdf文档,支持中文word转换....
Java-Swing嵌入浏览器-附件资源
swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3...
swing计算器 swing计算器swing计算器 swing计算器swing计算器 swing计算器swing计算器 swing计算器swing计算器 swing计算器 简易计算器
swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程swing 教程
java swing漂亮界面 超酷 javaswing教程
Swing插件,swing,java-swing swing-plugin下载
POI报表Word导出
swing_hack,swing_hack,swing_hack,swing_hack