SwingのWebブラウザコンポーネントMozSwing

JavaOneのSwing for the Massesというセッション資料の中で、MozSwingというWebブラウザコンポーネントが紹介されていました。

MozSwing download | SourceForge.net

MozSwingはXULRunnerのラッパーで、Windows, MacOS, Linux, Solaris用のバイナリが同梱されています。

資料によると、SwingでWebブラウザを使いたい場合、現状としては

  • JWebPaneはいつリリースされるか不明
  • SWT_AWTでネイティブブラウザを埋め込む方法もあるが、EDTが重複したりDOM操作ができなかったりと問題が多い

ということで、MozSwingが有力だそうです。

MozSwingを実際に試してみました。

public class WebBrowser extends JFrame {
    public static void main(String[] args) {
        System.setProperty("mozswing.xulrunner.home",
                "C:/Java/mozswing-2.0beta2/native/win32/xulrunner");

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new WebBrowser().setVisible(true);
            }
        });
    }

    public WebBrowser() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setPreferredSize(new Dimension(800, 600));
        setLayout(new BorderLayout());

        MozillaPanel panel = new MozillaPanel();
        add(panel, BorderLayout.CENTER);

        panel.load("http://www.google.co.jp/");

        pack();
    }
}

このように、ブラウザをSwingアプリに簡単に組み込めるようです。