|
Java在WEB上大放異彩,但在桌面程序開(kāi)發(fā)上可以說(shuō)遜色太多了。Swing默認(rèn)的樣式難看,速度又慢,而且為了兼容各操作系統(tǒng),Java很難保 證方便地與一些系統(tǒng)專有的程序進(jìn)行交互,比如Windows中的IE等,而.NET Framework則有很方便的工具可供使用。 對(duì)本機(jī)程序進(jìn)行封裝,這也是現(xiàn)在軟件開(kāi)發(fā)的一大思路,比如傲游(Maxthon)瀏覽器(原名MyIE2),就是基于IE進(jìn)行開(kāi)發(fā)的,加了很多功能,現(xiàn)在非常流行。 可以想像,如果用Java實(shí)現(xiàn)一個(gè)Maxthon,難度是相當(dāng)大的。 但JDIC 的出現(xiàn),使Java與本機(jī)桌面程序交互變得容易了不少。JDesktop Integration Components (JDIC)的目的是構(gòu)建消除本機(jī)應(yīng)用程序和 Java 等價(jià)物之間差距的組件。JDIC 目前提供了本機(jī) Web 瀏覽器(Internet Explorer 或 Mozilla) 支持、系統(tǒng)托盤支持、文件擴(kuò)展集成和其他桌面特性。相信JDIC將來(lái)在Java桌面開(kāi)發(fā)上會(huì)越來(lái)越受歡迎。 https://jdic.dev./ 下面以一個(gè)基于IE瀏覽器的小程序來(lái)介紹一下JDIC的使用。 程序的需求: 復(fù)制一段文字內(nèi)容到IE瀏覽器打的網(wǎng)頁(yè)中的某些表單,即實(shí)現(xiàn)自動(dòng)填寫表單的功能。比如我們登錄,自動(dòng)填寫用戶登錄表單。 這 個(gè)功能也是現(xiàn)在很多瀏覽器本身就支持的,比如Firefox,就會(huì)記錄,然后自動(dòng)完成。當(dāng)然我們使用程序控制更為強(qiáng)大,易于擴(kuò)展。這是個(gè)簡(jiǎn)單的功能,但對(duì) 于某些行業(yè),經(jīng)常需要在網(wǎng)頁(yè)上填寫大量表單,就非常有用,可以節(jié)省大量時(shí)間,特別是如果填寫的數(shù)據(jù)也用程序來(lái)讀取的話:) 解決思路:使用程序打開(kāi)一個(gè)IE窗口,并在窗口中執(zhí)行一段JavaScript代碼,設(shè)置表單的值。 使用JDIC,即其中的org.jdesktop.jdic.browser這個(gè)package,使用executeScript()方法即可以在當(dāng)前窗口打開(kāi)的HTML中執(zhí)行JavaScript。這里基于jdic.browser的Demo做些簡(jiǎn)單的改寫,就可以滿足我們的需求。 首先在瀏覽器上增加一個(gè)“自動(dòng)完成”按鈕,并給該按鈕加上事件處理函數(shù)。 import org.jdesktop.jdic.browser.*; webBrowser = new WebBrowser(new URL("http://www.")); JButton jCompleteButton = new JButton("自動(dòng)填寫", 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來(lái)設(shè)置表單的內(nèi)容。 最后結(jié)果:
可以在當(dāng)前頁(yè)面中執(zhí)行JavaScript,我們就可以對(duì)HTML進(jìn)行各種各樣的操作,實(shí)現(xiàn)各種功能。 |
|
|
來(lái)自: ShangShujie > 《java》