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