前言
在项目中需要使用桌面应用程序显示Word文档,并实现一个放大缩小的效果。但是我发现Word并不能直接转换成Image格式,所以就取了一个折中的方法。先把Word转换为PDF,再把PDF转换成Image。
[ Not destory me make stronger ]
WindowBuilder - 是一个功能强大且易于使用的双向Java GUI设计器
WindowBuilder由SWT Designer和Swing Designer组成,可以非常轻松地创建Java GUI应用程序,而无需花费大量时间编写代码。使用WYSIWYG可视化设计器和布局工具为复杂窗口创建简单的表单; 将为您生成Java代码。使用拖放轻松添加控件,向控件添加事件处理程序,使用属性编辑器更改控件的各种属性,使应用程序国际化等等。
WindowBuilder是作为Eclipse和各种基于Eclipse的IDE(RAD,RSA,MyEclipse,JBuilder等)的插件而构建的。该插件构建了一个抽象语法树(AST)来导航源代码并使用GEF来显示和管理可视化表示。
生成的代码不需要任何其他自定义库来编译和运行:可以在不安装WindowBuilder Pro的情况下使用所有生成的代码。WindowBuilder Pro几乎可以读写任何格式,并可以反向工程大多数手工编写的Java GUI代码。它还支持自由格式代码编辑(在任何地方进行更改……不仅仅是在特殊区域)和大多数用户重新分解(您可以移动,重命名和细分方法而不会出现问题)
—— Google 翻译
Java Native Access(JNA)
JNA为Java程序提供了对本机共享库的轻松访问,而无需编写除Java代码之外的任何内容 - 不需要JNI或本机代码。此功能可与Windows的Platform / Invoke和Python的ctypes相媲美。
JNA允许您使用自然Java方法调用直接调用本机函数。Java调用看起来就像本机代码中的调用一样。大多数呼叫不需要特殊处理或配置; 不需要样板或生成的代码。
JNA使用小型JNI库存根来动态调用本机代码。开发人员使用Java接口来描述目标本机库中的函数和结构。这使得利用本机平台功能变得非常容易,而不会产生为多个平台配置和构建JNI代码的高额开销。
虽然对性能给予了极大的关注,但正确性和易用性优先考虑。
此外,JNA还包括一个平台库,其中已经映射了许多本机函数,以及一组简化本机访问的实用程序接口。
—— 以上Google翻译
1 | Collection<Integer> c1 = new ArrayList<Integer>(Arrays.asList(1,2,3,4)); |
与HashSet一样,HashMap也提供了最快的查找技术,也没有按照任何明显的顺序来保存其元素。TreeMap按照比较结果升序保存键,而LinkedHashMap则按照插入顺序保存键,同时保留了HashMap的查询速度。