JavaでHTMLをレンダリングしようとすると、どえらく大変です。SwingコンポーネントもHTMLを解釈してレンダリングしてくれますが、CSSなどには対応しておらず、ごく基本的なHTMLしか使うことができません。
Javaでスタイルシートも含めてHTMLをレンダリングしたい! 自前でSwingコンポーネントを組み立てていくのはイヤだ! そう叫びたい方、現に叫んでいる方に朗報です。あのオープンソースで開発が進められている有名ブラウザ、FirefoxをSwingコンポーネントとして使うことができるようになっていたのです。
MozSwing (SourceForge)からパッケージをダウンロードすることができます。
内部ではXULRunnerという、XULとXPCOMを使ったアプリケーションを動作させるための基盤システムを使っています。パッケージには各プラットフォームごとのバイナリが入っており、内部としては、単純に、Javaを介してそれらのバイナリを動作させているだけということになります。
パッケージに入っているjarファイルをすべてクラスパスに組み込み、提供されているSwingコンポーネントMozillaPanelを使うことで、簡単にFirefox相当のブラウザを組み込むことができてしまいます。
ただ、事前に、システムプロパティmozswing.xulrunner.home
にXULRunnerのディレクトリを指定しておかなければならないようです。これをインストールされているFirefoxのディレクトリに合わせれば、最新版のFirefoxで動作することになるのかなあ? 内部動作など、まだよく分かっていないので、予想です。
サンプルコードはkaisehのブログに掲載されていました。まあ、JFrameにMozillaPanelを貼り付けるだけ、というシンプル極まりないものですが。これだけでブラウザが動作してしまうのですから、ちょっとビックリです。