`
南山忍者
  • 浏览: 83610 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】为你的Java应用嵌入一个功能强大的文字编辑器

    博客分类:
  • Java
 
阅读更多



http://xdoc.iteye.com/blog/1126216

以下文章转自:

 

如果你想在Java应用中嵌入一个功能强大的文字编辑器,那么XDocBuilder可能是最好的选择
1、免费
2、格式丰富,可以处理段落、文字、图形、图片、图表、表格等
3、文件格式支持丰富:xdoc、docx、pdf、rtf、doc、htm、txt、swf、svg等
4、标准格式xdoc是一个简单的xml文本
5、包依赖少,只有一个包是必须的
6、嵌入简单,它只是一个JComponent
7、API功能强大:打开、编辑、打印、格式转换等

程序库:

 

名称

用途

下载地址

hg.jar

主程序库(必须)

http://www.hgsql.com/xdoc/lib/hg.jar

fgio.jar

输出swfsvgemfps

http://www.hgsql.com/xdoc/lib/fgio.jar

filters.jar

滤镜

http://www.hgsql.com/xdoc/lib/filters.jar

itext.jar

输出pdfrtf

http://www.hgsql.com/xdoc/lib/itext.jar

jfreechart.jar

图表

http://www.hgsql.com/xdoc/lib/jfreechart.jar

poi.jar

读取doc、输出xlsppt

http://www.hgsql.com/xdoc/lib/poi.jar

api文档:

http://www.hgsql.com/XDocApi/index.html

在线:

http://www.hgsql.com/XDocBuilder.asp

例子:

Java代码  收藏代码
  1. import java.awt.BorderLayout;  
  2. import java.awt.Container;  
  3. import java.awt.event.ActionEvent;  
  4. import java.awt.event.ActionListener;  
  5. import java.awt.event.WindowEvent;  
  6. import java.awt.event.WindowListener;  
  7. import java.io.File;  
  8.   
  9. import javax.swing.JButton;  
  10. import javax.swing.JFrame;  
  11. import javax.swing.JOptionPane;  
  12. import javax.swing.JToolBar;  
  13. import javax.swing.UIManager;  
  14.   
  15. import com.hg.xdoc.XDocBuilder;  
  16. import com.hg.xdoc.XDocIO;  
  17.   
  18. /** 
  19.  * XDocBuilder嵌入测试 
  20.  * @author xdoc 
  21.  */  
  22. public class XDocBuilderTest {  
  23.     private static XDocBuilder builder;  
  24.     /** 
  25.      * @param args 
  26.      */  
  27.     public static void main(String[] args) {  
  28.         try {  
  29.             UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());  
  30.             //获取XDocBuilder实例  
  31.             builder = new XDocBuilder();  
  32.             JFrame frame = new JFrame("XDocBuilder嵌入测试");  
  33.             //将XDocBuilder放入面板中  
  34.             frame.getContentPane().add(builder, BorderLayout.CENTER);  
  35.             JToolBar bar = new JToolBar("工具条");  
  36.             JButton btn = new JButton("新建");  
  37.             btn.addActionListener(new ActionListener() {  
  38.                 public void actionPerformed(ActionEvent e) {  
  39.                     //新建  
  40.                     builder.create();  
  41.                 }  
  42.             });  
  43.             btn = new JButton("打开");  
  44.             btn.addActionListener(new ActionListener() {  
  45.                 public void actionPerformed(ActionEvent e) {  
  46.                     //打开  
  47.                     builder.open();  
  48.                     //builder.open("http://www.hgsql.com/down/XDocIntro.xdoc", XDocIO.READ_FORMAT_XDOC);  
  49.                 }  
  50.             });  
  51.             bar.add(btn);  
  52.             btn = new JButton("查看XML");  
  53.             btn.addActionListener(new ActionListener() {  
  54.                 public void actionPerformed(ActionEvent e) {  
  55.                     //显示XML内容  
  56.                     try {  
  57.                         JOptionPane.showMessageDialog(null, builder.getXml());  
  58.                     } catch (Exception e1) {  
  59.                         JOptionPane.showMessageDialog(null, e1.getMessage());  
  60.                     }  
  61.                 }  
  62.             });  
  63.             bar.add(btn);  
  64.             btn = new JButton("保存");  
  65.             btn.addActionListener(new ActionListener() {  
  66.                 public void actionPerformed(ActionEvent e) {  
  67.                     //保存当前文件  
  68.                     builder.save();  
  69.                 }  
  70.             });  
  71.             bar.add(btn);  
  72.             btn = new JButton("全部保存");  
  73.             btn.addActionListener(new ActionListener() {  
  74.                 public void actionPerformed(ActionEvent e) {  
  75.                     for (int i = 0; i < builder.getXDocCount(); i++) {  
  76.                         //选择第i个文件  
  77.                         builder.activeXDoc(i);  
  78.                         //保存  
  79.                         builder.save();  
  80.                         //builder.save("xdox" + i + ".rtf", XDocIO.WRITE_FORMAT_PDF);  
  81.                     }  
  82.                 }  
  83.             });  
  84.             bar.add(btn);  
  85.             btn = new JButton("关闭");  
  86.             btn.addActionListener(new ActionListener() {  
  87.                 public void actionPerformed(ActionEvent e) {  
  88.                     //关闭当前文件  
  89.                     builder.close();  
  90.                 }  
  91.             });  
  92.             bar.add(btn);  
  93.             btn = new JButton("打印");  
  94.             btn.addActionListener(new ActionListener() {  
  95.                 public void actionPerformed(ActionEvent e) {  
  96.                     builder.print();  
  97.                 }  
  98.             });  
  99.             bar.add(btn);  
  100.             btn = new JButton("直接打印");  
  101.             btn.addActionListener(new ActionListener() {  
  102.                 public void actionPerformed(ActionEvent e) {  
  103.                     //打印到指定打印机  
  104.                     builder.print("HG JPD 虚拟打印机");  
  105.                 }  
  106.             });  
  107.             bar.add(btn);  
  108.             btn = new JButton("关于");  
  109.             btn.addActionListener(new ActionListener() {  
  110.                 public void actionPerformed(ActionEvent e) {  
  111.                     builder.about();  
  112.                 }  
  113.             });  
  114.             bar.add(btn);  
  115.             Container content = frame.getContentPane();  
  116.             content.add(bar, BorderLayout.NORTH);  
  117.             frame.setSize(800600);  
  118.             frame.setVisible(true);  
  119.             frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);  
  120.             frame.addWindowListener(new WindowListener() {  
  121.                 public void windowOpened(WindowEvent e) {}  
  122.                 public void windowClosing(WindowEvent e) {  
  123.                     //frame关闭时做处理  
  124.                     for (int i = 0; i < builder.getXDocCount(); i++) {  
  125.                         try {  
  126.                             XDocIO.write(builder.getXDoc(i), new File("c:/xdoc" + i + ".xdoc"));  
  127.                         } catch (Exception e1) {  
  128.                             JOptionPane.showMessageDialog(null, e1.getMessage());  
  129.                         }  
  130.                     }  
  131.                     System.exit(0);  
  132.                 }  
  133.                 public void windowClosed(WindowEvent e) {}  
  134.                 public void windowIconified(WindowEvent e) {}  
  135.                 public void windowDeiconified(WindowEvent e) {}  
  136.                 public void windowActivated(WindowEvent e) {}  
  137.                 public void windowDeactivated(WindowEvent e) {}  
  138.             });  
  139.             frame.setExtendedState(JFrame.MAXIMIZED_BOTH);  
  140.         } catch (Exception e) {  
  141.             JOptionPane.showMessageDialog(null, e.getMessage());  
  142.         }  
  143.     }  
  144. }  

 运行效果:


分享到:
评论

相关推荐

    swing界面设计之JTree

    (十九) 向 Java 应用程序伸出援助之手——用 JavaHelp 2.0 构建下一个 Java 应用程序的帮助系统 115 入门 116 使用 HelpSet 117 HelpSet 数据文件 118 helpset 文件 118 maps 部分 119 view 部分 119 presentation ...

    Python简介.doc

    开发环境与编辑器 14. 嵌入和扩展 15. 游戏编程 16. 中文编程与文字处理 17. 手机移动 18. 成功案例与应用 19. 书籍文档 20. 综合应用 21. 精选链接 22. 技术支持和服务 什么是 Python 语言 Python 语言是一种...

    Google Android SDK开发范例大全(第3版) 1/5

    创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身计时、QR Code二维条码生成器、手机OR Code扫描仪、热量骰子、掷杯筊、正妹墙相簿浏览器、You Tube...

    Google Android SDK开发范例大全(第3版) 4/5

    创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身计时、QR Code二维条码生成器、手机OR Code扫描仪、热量骰子、掷杯筊、正妹墙相簿浏览器、You Tube...

    Google Android SDK开发范例大全(第3版) 3/5

    创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身计时、QR Code二维条码生成器、手机OR Code扫描仪、热量骰子、掷杯筊、正妹墙相簿浏览器、You Tube...

    etherpad-new:我最近尝试推出自定义 etherpad

    用于网络的真正实时协作文字处理器关于Etherpad 是由 Etherpad 社区维护的真正实时协作编辑器。 Etherpad 在服务器和客户端上都是用 Javascript(99.9%) 编写的,因此开发人员很容易维护和添加新功能。 正因为如此,...

    华报智能报表工具

    华报智能报表工具(ReportAll)是开发人员最理想的报表工具,具有全新的设计思想,对中国式报表和很多复杂报表有很强的针对性,他将“对象摆放”类和“电子表格”类报表开发工具完美融合,使用种类丰富且功能强大的...

    Activiti6.0教程例子下载

    Activiti 作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于 Java 的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。 Activiti 流程引擎...

    正则表达式

    \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,...

    PL/SQL 基础.doc

    PL/SQL 基础,一个不错的 PL/SQL 参考手册。内容预览: ---- 第一章 PL/SQL 简介 ---- 1. Oracle应用编辑方法概览 1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和...

    HTML开发王

    1.3.2 创建第一个网页 1.3.3 查看网页的源文件 1.4 html 4.0的特点 1.4.1 国际化 1.4.2 可访问性 1.4.3 表格 1.4.4 混合文档 1.4.5 样式表 . 1.4.6 脚本 1.4.7 打印 1.5 巩固与自测 第2章 html文档的基本结构 2.1 ...

    XML实用大全----xml详细参考书

    1.3.1 编辑器... 15 1.3.2 语法分析程序和处理程序... 15 1.3.3 浏览器和其他工具... 15 1.3.4 处理过程总结... 15 .4 相关技术... 17 1.4.1 超文本标记语言(Hypertext Markup Language)... 17 1.4.2 级联...

Global site tag (gtag.js) - Google Analytics