日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺談如何設(shè)計(jì)Java瀏覽器

在Java中,雖然可以用JEditorPane打開網(wǎng)頁(yè),但是它那解析速度以及解析質(zhì)量,對(duì)于今天日益復(fù)雜的網(wǎng)頁(yè)內(nèi)容來說,就像沒有一樣。今天我們就使用一個(gè)開源的組件(jdic)來實(shí)現(xiàn)在Java程序里面嵌入網(wǎng)頁(yè)的效率。

在治多等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營(yíng)銷型網(wǎng)站建設(shè),外貿(mào)營(yíng)銷網(wǎng)站建設(shè),治多網(wǎng)站建設(shè)費(fèi)用合理。

下面言歸正轉(zhuǎn)吧,我們來介紹一下這個(gè)開源的組件,它的名字叫JDIC(JDesktop Integration Components),網(wǎng)址為:https://jdic.dev.java.net/,它提供了一種訪問桌面組件的API,其中JDK6.0就采納了其中了一些,比如系統(tǒng)欄圖標(biāo)的SystemTray和SystemIcon,還有代表桌面的Desktop等等,可見這個(gè)API是挺不錯(cuò)的。由于Java瀏覽器的特殊性,標(biāo)準(zhǔn)的JDK并沒有把它加入進(jìn)來,但是我們一樣可以下載它來使用這個(gè)功能。明顯地,這個(gè)功能是用本地方法實(shí)現(xiàn)的,所以下載完以后,把jdic.dll放到我們的path目錄中,比如system32文件夾下面,然后我們就可以使用它的功能從而增加我們的Java程序了。

Java瀏覽器的例子代碼如下:

 
 
 
  1. /*  
  2. * Test1.java  
  3. *  
  4. * Created on 2007-10-2, 17:29:30  
  5. *  
  6. * To change this template, choose Tools | Templates  
  7. * and open the template in the editor.  
  8. */  
  9.  
  10. package test2;  
  11.  
  12. import java.awt.BorderLayout;  
  13. import java.awt.event.ActionEvent;  
  14. import java.awt.event.ActionListener;  
  15. import java.net.MalformedURLException;  
  16. import java.net.URL;  
  17. import java.util.logging.Level;  
  18. import java.util.logging.Logger;  
  19. import javax.swing.JButton;  
  20. import javax.swing.JFrame;  
  21. import javax.swing.JPanel;  
  22. import javax.swing.JTextField;  
  23. import org.jdesktop.jdic.browser.IWebBrowser;  
  24. import org.jdesktop.jdic.browser.WebBrowser;  
  25. import org.jdesktop.jdic.browser.WebBrowserEvent;  
  26. import org.jdesktop.jdic.browser.WebBrowserListenerAdapter;  
  27.  
  28. /**  
  29. *  
  30. * @author hadeslee  
  31. */  
  32. public class Test1 extends JPanel implements ActionListener {  
  33.  
  34.  private JTextField input;  
  35.  private JButton go;  
  36.  private IWebBrowser web;  
  37.  
  38.  public Test1() {  
  39.   super(new BorderLayout());  
  40.   initWindow();  
  41.  }  
  42.  
  43.  private void initWindow() {  
  44.   try {  
  45.    web = new WebBrowser();  
  46.    web.addWebBrowserListener(new MyListener());  
  47.    go = new JButton("轉(zhuǎn)到");  
  48.    input = new JTextField();  
  49.    JPanel up = new JPanel(new BorderLayout());  
  50.    up.add(input, BorderLayout.CENTER);  
  51.    up.add(go, BorderLayout.EAST);  
  52.    this.add(up, BorderLayout.NORTH);  
  53.    this.add(web.asComponent(), BorderLayout.CENTER);  
  54.    input.addActionListener(this);  
  55.    go.addActionListener(this);  
  56.   } catch (Exception ex) {  
  57.    Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, ex);  
  58.   }  
  59.   JFrame jf = new JFrame("JAVA瀏覽器");  
  60.   jf.add(this, BorderLayout.CENTER);  
  61.   jf.setSize(500, 300);  
  62.   jf.setLocationRelativeTo(null);  
  63.   jf.setVisible(true);  
  64.   jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  65.  }  
  66.  
  67.  public void actionPerformed(ActionEvent ae) {  
  68.   doOpen();  
  69.  }  
  70.  
  71.  private void doOpen() {  
  72.   try {  
  73.    String text = input.getText();  
  74.    if (text == null || text.equals("")) {  
  75.     return;  
  76.    }  
  77.    if (!text.toLowerCase().startsWith("http://")) {  
  78.     text = "http://" + text;  
  79.    }  
  80.    web.setURL(new URL(text));  
  81.   } catch (MalformedURLException ex) {  
  82.    Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, ex);  
  83.   }  
  84.  }  
  85.  
  86.  public static void main(String[] args) {  
  87.   new Test1();  
  88.  }  
  89.  
  90.  private class MyListener extends WebBrowserListenerAdapter {  
  91.  
  92.   private MyListener() {}  
  93.  
  94.   @Override  
  95.   public void documentCompleted(WebBrowserEvent arg0) {  
  96.    System.out.println("文檔下載完。。。");  
  97.    web.executeScript("alert('文檔下載完畢!')");  
  98.    // web.setContent("

    Hello world!!

    " +  

  99.    // " href=http://www.google.cn>點(diǎn)我 a> html>");  
  100.    // web.removeWebBrowserListener(this);  
  101.   }  
  102.  }  
  103. }   

它比一般的別的實(shí)現(xiàn)好的地方就是,它可以很完全地和Java代碼進(jìn)行交互,包括瀏覽器事件的監(jiān)聽,瀏覽器內(nèi)容的獲取,以及自己調(diào)用瀏覽器來執(zhí)行一段javasript,這些都是很強(qiáng)大并且很實(shí)用的功能。

怎么樣,這下滿足了一下我們把網(wǎng)頁(yè)嵌入到Java程序中的愿望了吧。

【編輯推薦】

  1. Java連接MySQL中文亂碼處理
  2. 在Java應(yīng)用程序中使用Jfreechart配置
  3. Java虛擬機(jī)內(nèi)部構(gòu)成淺析
  4. 淺談Java線程的生命周期
  5. 關(guān)于Java繼承的一些復(fù)習(xí)

分享文章:淺談如何設(shè)計(jì)Java瀏覽器
網(wǎng)頁(yè)地址:http://m.5511xx.com/article/codhddg.html