java jeditorpane 自动换行_JDIC 中利用WebBrowser内置浏览器到java application中 | 学步园...
JDIC簡介:
JDesktop Integration Components (JDIC),是一個開源的項目,目的是構(gòu)建消除本機應(yīng)用程序和 Java 等價物之間差距的組件。項目組長是個中國人。該項目是為了使用java建立桌面應(yīng)用程序而建立的JDIC
單一的 Java API 允許應(yīng)用程序接進本機操作系統(tǒng)特性,同時保持跨平臺支持。
它目前提供了本機 Web瀏覽器(Internet
Explorer 或 Mozilla) 支持、系統(tǒng)托盤支持、文件擴展集成、應(yīng)用程序啟動與打印和其他桌面特性。
配置:
開始下載跨平臺(或windows/linux/solaris)JDIC 包,其中包括:
1.jdic.jar:這個 JAR 文件包含進行 JDIC 開發(fā)所需的所有 Java 類。它們必須位于類路徑中,以便進行編譯。
2.jdic.dll 和 tray.dll:在 Windows 安裝中,這些文件都要放在 C:\Windows 目錄(或者對應(yīng)的目錄)中。這些文件包含 jdic.jar 的 Java 方法和本機操作系統(tǒng)方法之間的"橋接"方法。
3.libjdic.so 和 libtray.so:在 Solaris 和 Linux 系統(tǒng)上,這些文件必須放在 LD_LIBRARY_PATH 文件夾中
JDIC 中的第一個組件WebBrowser
JDIC 項目中的第一個組件(也是該項目的最初靈感) 是 WebBrowser,它提供了一條接近操作系統(tǒng)內(nèi)置瀏覽器的途徑。任何熟悉 Swing 的人都非常清楚,在 Java 應(yīng)用程序中查看 Web 頁面很困難。例如,現(xiàn)有的 Swing 組件 JEditorPane 就做得很糟糕,只能顯示最簡單的 Web 頁面。如果包含任何 DHTML 腳本,那么請忘記它 —— 現(xiàn)有的 Swing 組件不能顯示它。這讓 Swing 開發(fā)人員失去了在應(yīng)用程序中顯示 HTML 頁面的選擇 —— 由于 Web 在任何桌面應(yīng)用程序中都是如此之重要(用作幫助頁面和
README 文件),所以這是一個很大的障礙。
特別打擊 Swing 開發(fā)人員的一個事實是:現(xiàn)在每臺機器上都有功能齊全的瀏覽器,但它們的應(yīng)用程序仍然無法使用。每個本機應(yīng)用程序都能使用內(nèi)置的瀏覽器(Windows 上的 Internet Explorer 或 Linux 機器上的 Mozilla)。Swing 的功能與易于訪問的解決方案之間的巨大差距促使 WebBrowser 成為 JDIC 項目的一個好起點。
WebBrowser 允許 Swing 應(yīng)用程序?qū)⒈緳C瀏覽器嵌入任何應(yīng)用程序中。但是需要重點指出的是,WebBrowser 僅僅 是 Web 瀏覽器應(yīng)用程序的呈現(xiàn)部分。這個組件不包含 Back 按鈕、地址欄、狀態(tài)欄,或者任何不屬于應(yīng)用程序呈現(xiàn)部分的內(nèi)容。但是,正如稍后將看到的,WebBrowser 包含了允許您實現(xiàn)這些常用的瀏覽器特性的方法。
用jdic開源組件,這種方式有個缺點,不支持firefox,如果把默認瀏覽器設(shè)為firefox就會出錯
JDIC瀏覽器組件的使用方法(將網(wǎng)頁在swing界面上顯示):1、 ?將jdic.jar導入類路徑;2、 ?將jdic.dll, IeEmbed.exe拷貝到操作系統(tǒng)的system32目錄下;3、 ?生成java代碼。
例子:利用jdic中的WebBrowser來調(diào)用本地html來嵌入百度地圖
MainFrame.java源文件
import java.io.File;
import java.net.URL;
import javax.swing.JFrame;
import org.jdesktop.jdic.browser.BrowserEngineManager;
import org.jdesktop.jdic.browser.IBrowserEngine;
import org.jdesktop.jdic.browser.IWebBrowser;
import org.jdesktop.jdic.browser.WebBrowser;
import org.jdesktop.jdic.browser.WebBrowserEvent;
import org.jdesktop.jdic.browser.WebBrowserListener;
public class MainFrame {
public static IWebBrowser browser;
public MainFrame() {
}
public static void main(String[] args) throws Exception{
BrowserEngineManager bem = BrowserEngineManager.instance();
bem.setActiveEngine(BrowserEngineManager.IE);
IBrowserEngine be = bem.getActiveEngine();
//URL url = new URL("http://www.hao123.com");
URL url = new File("D:/test.htm").toURI().toURL();
//WebBrowser browser1 = new WebBrowser();
browser = be.getWebBrowser();//new WebBrowser();
browser.addWebBrowserListener(new WebBrowserListener() {
public void downloadStarted(WebBrowserEvent event) {
System.out.println("27");
}
public void downloadCompleted(WebBrowserEvent event) {
System.out.println("30");
}
public void downloadProgress(WebBrowserEvent event) {
System.out.println("33");
}
public void downloadError(WebBrowserEvent event) {
System.out.println("36");
}
public void documentCompleted(WebBrowserEvent event) {
System.out.println("39");
browser.executeScript("alert('文檔下載完畢!')");
}
public void titleChange(WebBrowserEvent event) {
System.out.println("43");
}
public void statusTextChange(WebBrowserEvent event) {
System.out.println("46");
}
public void windowClose(WebBrowserEvent webBrowserEvent) {
System.out.println("49");
}
public void initializationCompleted(WebBrowserEvent arg0) {
System.out.println("52");
} });
browser.setURL(url);
JFrame f = new JFrame();
f.setTitle("瀏覽器");
f.setSize(800,600);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//f.getContentPane().add(browser1);
f.getContentPane().add(browser.asComponent());
f.setVisible(true);
}
}
test.htm文件:
酸奶小妹——百度地圖API學習html{height:100%}
body{height:100%;margin:0px;padding:0px}
#milkMap{height:400px;width:600px;border:1px solid blue;}
var map = new BMap.Map("milkMap"); // 創(chuàng)建地圖實例
var point = new BMap.Point(116.404, 39.915); // 創(chuàng)建點坐標
map.centerAndZoom(point, 18); // 初始化地圖,設(shè)置中心點坐標和地圖級別
map.setMapType(BMAP_PERSPECTIVE_MAP); //修改地圖類型為3D地圖
map.setCurrentCity("北京市"); //設(shè)置當前城市
注:利用jdic中的WebBrowser中的executeScript()方法可在當前窗口打開的HTML中執(zhí)行JavaScript,如利用JS來設(shè)置表單的內(nèi)容
webBrowser.executeScript("document.getElementById('uname').value='haohappy';document.getElementById('pwd').value='123456';");}
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的java jeditorpane 自动换行_JDIC 中利用WebBrowser内置浏览器到java application中 | 学步园...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 实现set_js 实现JAVA
- 下一篇: html 判断页面支持canvas,HT