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.java.net/
http://www.ibm.com/developerworks/cn/java/j-jdic/
http://community.java.net/javadesktop/
下面以一个基于IE浏览器的小程序来介绍一下JDIC的使用。
程序的需求: 复制一段文字内容到IE浏览器打的网页中的某些表单,即实现自动填写表单的功能。比如我们登录phpeye.com,自动填写用户登录表单。
这个功能也是现在很多浏览器本身就支持的,比如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.phpeye.com"));
JButton jCompleteButton = new JButton("自动填写",
new ImageIcon(getClass().getResource("images/AC.png")));
jCompleteButton.addActionListener(new Browser_jCompleteButton_actionAdapter(this));
class Browser_jCompleteButton_actionAdapter implements java.awt.event.ActionListener {
Browser adaptee;
Browser_jCompleteButton_actionAdapter(Browser adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jCompleteButton_actionPerformed(e);
}
}
void jCompleteButton_actionPerformed(ActionEvent e) {
webBrowser.executeScript("document.getElementById('uname').value='haohappy';document.getElementById('pwd').value='123456';");
}
上面红色那行就是利用JS来设置表单的内容。
最后结果:
可以在当前页面中执行JavaScript,我们就可以对HTML进行各种各样的操作,实现各种功能。
- 大小: 84.8 KB
分享到:
相关推荐
jdic用来做java内嵌浏览器的一个开源软件包,可以支持firefox\ie 等浏览器,支持多平台win\linux\sunos 等
jdic-0.9.1-bin-cross-platform.zip
jdic-20061102-bin-win.zip
jdic bin cross platform
JDIC JDIC插件 Java系统托盘 JDIC调用或者整合本地桌面环境的组件或应用程序
java编写浏览器使用的包,里面包支持windows,苹果,linux系统
jdic bin 包
java webbrower,JDIC开发用到的jdic-all.jar。JDIC 全程是 JDesktop Integration Components 目的是构建消除本机应用程序和 Java 等价物之间差距的组件。JDIC 单一的 Java API 允许应用程序接进本机操作系统特性,...
jdic can be used to embed Ie into java
用于java内置浏览器,jdic的辅助包
在开发spark 2.5.8插件的时候用到的一个桌面浏览的jar包,
java 写的webbrowser,与平台有关的。支持java程序调用IE或者Ff
jdic
jdic-all.jar META-INF jdic browser internal BrowserEngineManager IBrowserEngine InternetExplorerEngine IWebBrowser MozillaEngine WebBrowser WebBrowserEvent WebBrowserListener WebBrowserListenerAdapter...
JDIC(Java Desktop Integration Components)项目的背景是当可以不考虑 Java 代码的平台可移植性的时候,能让 Java 程序与系统无缝地整合在一起。它提供给 Java 代码直接访问本地桌面的功能,其中包含了一系列的 ...
介绍 JDesktop Integration Components 用 JDIC 在桌面应用程序中集成本机操作系统特性
用于jdic开发,里面有jdic在wionws下的安装环境及jar包。
import org.jdesktop.jdic.tray.SystemTray; import org.jdesktop.jdic.tray.TrayIcon; spark_pluginx_linux
jdic目前提供了本机 Web 浏览器(Internet Explorer 或 Mozilla) 支持、系统托盘支持、文件扩展集成、应用程序启动与打印和其他桌面特性。
包含jdic.jar jdic.dll 32位和64位的,你们自己根据需要配置,直接放在和项目相关的地方或注册在system32下面,就可以使用