四大方案快速對比
| 方案 | 核心類別 | 渲染引擎 | 跨平台 | JS/CSS 支援 | 部署複雜度 | 授權 |
| JEditorPane | javax.swing.JEditorPane | Sun 內建 (HTML 3.2) | 是 (純 Java) | 極弱 (無 JS、CSS 1 級) | 零依賴 | JDK 內建 |
| Lobo | org.lobobrowser.gui.FramePanel | Cobra (純 Java) | 是 (純 Java) | HTML 4、CSS 2、JS (Rhino) | 2 JAR (lobo.jar, lobo-pub.jar) | MPL/LGPL |
| JDICplus | org.jdic.web.BrTabbed | MSHTML (IE ActiveX) | 否 (僅 Windows) | 完整 (等同系統 IE 版本) | 需 JDK 6+、JNI DLL、IE 安裝 | LGPL |
| SWT Browser | org.eclipse.swt.browser.Browser | 平台原生 (Windows: IE/Edge; Linux: WebKitGTK/Moz; macOS: WebKit) | 是 (需各平台 SWT 庫) | 完整 (等同系統瀏覽器) | 需 SWT 原生庫、平台特定打包 | EPL |
方案一:JEditorPane (輕量、純 Java、功能最少)
基本用法
JEditorPane pane = new JEditorPane();
pane.setContentType("text/html");
pane.setEditable(false);
pane.addHyperlinkListener(e -> {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
try { pane.setPage(e.getURL()); }
catch (IOException ex) { ex.printStackTrace(); }
}
});
// 載入 URL 或 HTML 字串
pane.setPage("https://example.com");
// 或 pane.setText("Hello");
適用場景
- 顯示簡單靜態 HTML (說明文件、授權條款、簡易報表)。
- 禁止外部依賴、追求最小部署體積的專案。
避坑指南