小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 ShangShujie 2008-02-18

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

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

最后結(jié)果:

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多