日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

使用JDIC與本機(jī)桌面程序交互...

 ShangShujie 2008-02-18

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./
http://www.ibm.com/developerworks/cn/java/j-jdic/
http://community./javadesktop/

下面以一個基于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("自動填寫",
            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來設(shè)置表單的內(nèi)容。

最后結(jié)果:

可以在當(dāng)前頁面中執(zhí)行JavaScript,我們就可以對HTML進(jìn)行各種各樣的操作,實(shí)現(xiàn)各種功能。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多