Java在WEB上大放异彩,但在桌面程序开发上可以说逊色太多了。Swing默认的样式难看,速度又慢,而且为了兼容各操作系统,Java很难保 证方便地与一些系统专有的程序进行交互,比如Windows中的IE等,而.NET Framework则有很方便的工具可供使用。 对本机程序进行封装,这也是现在软件开发的一大思路,比如傲游(Maxthon)浏览器(原名MyIE2),就是基于IE进行开发的,加了很多功能,现在非常流行。 可以想像,如果用Java实现一个Maxthon,难度是相当大的。 但JDIC 的出现,使Java与本机桌面程序交互变得容易了不少。JDesktop Integration Components (JDIC)的目的是构建消除本机应用程序和 Java 等价物之间差距的组件。JDIC 目前提供了本机 Web 浏览器(Internet Explorer 或 Mozilla) 支持、系统托盘支持、文件扩展集成和其他桌面特性。相信JDIC将来在Java桌面开发上会越来越受欢迎。 https://jdic.dev./ 下面以一个基于IE浏览器的小程序来介绍一下JDIC的使用。 程序的需求: 复制一段文字内容到IE浏览器打的网页中的某些表单,即实现自动填写表单的功能。比如我们登录,自动填写用户登录表单。 这 个功能也是现在很多浏览器本身就支持的,比如Firefox,就会记录,然后自动完成。当然我们使用程序控制更为强大,易于扩展。这是个简单的功能,但对 于某些行业,经常需要在网页上填写大量表单,就非常有用,可以节省大量时间,特别是如果填写的数据也用程序来读取的话:) 解决思路:使用程序打开一个IE窗口,并在窗口中执行一段JavaScript代码,设置表单的值。 使用JDIC,即其中的org.jdesktop.jdic.browser这个package,使用executeScript()方法即可以在当前窗口打开的HTML中执行JavaScript。这里基于jdic.browser的Demo做些简单的改写,就可以满足我们的需求。 首先在浏览器上增加一个“自动完成”按钮,并给该按钮加上事件处理函数。 import org.jdesktop.jdic.browser.*; webBrowser = new WebBrowser(new URL("http://www.")); JButton jCompleteButton = new JButton("自动填写", jCompleteButton.addActionListener(new Browser_jCompleteButton_actionAdapter(this)); class Browser_jCompleteButton_actionAdapter implements java.awt.event.ActionListener { Browser_jCompleteButton_actionAdapter(Browser adaptee) { public void actionPerformed(ActionEvent e) { void jCompleteButton_actionPerformed(ActionEvent e) { 上面红色那行就是利用JS来设置表单的内容。 最后结果: 可以在当前页面中执行JavaScript,我们就可以对HTML进行各种各样的操作,实现各种功能。 |
|
来自: ShangShujie > 《java》