今回は、JavaFXの最終回です。今まで紹介できなかったJavaFXの特徴的な機能を紹介します。後半ではJava SE 8に含まれるJavaFX 8の新機能について解説します。

ブラウザー

 JavaFXでは標準でブラウザーを描画要素として使用できます。SwingでもHTMLを部分的に使用できましたが、ブラウザーの代わりになるようなものではありませんでした。

 JavaFXのブラウザーは、OSSのWebKitがベースになっています。また、HTML 5にも対応しています。

 ブラウザーのクラスはjavafx.scene.web.WebViewクラスです。WebViewクラスは表示を担当し、HTMLの解釈などはjavafx.scene.web.WebEngineクラスで行います。

 使い方は簡単です。FXMLで配置したWebViewに対し、初期化時にITproのWebページをロードするようにしてみましょう。

リスト1●WebView/WebEngineクラスの使用例

@FXML
private WebView webview;

@Override
public void initialize(URL url, ResourceBundle rb) {
    // WebEngineオブジェクトの取得
    WebEngine engine = webview.getEngine();
    
    // ITproページのロード
    engine.load("http://itpro.nikkeibp.co.jp/");
}

 WebEngineオブジェクトはWebViewオブジェクトから取得します(青字部分)。Webページのロードは、赤字で示したようにloadメソッドで行います。

 実行例を図1に示しました。普通のブラウザーでの表示と遜色がないことが分かります。このサンプルはWebページをロードするだけの簡単なサンプルですが、WebView/WebEngineクラスではクッキーや履歴なども扱うことができます。

図1●WebViewの使用例
図1●WebViewの使用例
[画像のクリックで拡大表示]

グラフ

 JavaFXではグラフのためのノードも提供されています。使用できるグラフは以下の6種類です。棒グラフとエリアチャートは積み上げ形式にすることも可能です。

  • 円グラフ
  • 棒グラフ
  • 線グラフ
  • エリアチャート
  • 散布図
  • バブルチャート

 これらのグラフは円グラフとそれ以外に分けられます。円グラフ以外のグラフは、XY平面に描画するグラフです。つまり、x軸、y軸を持つグラフです。x軸、y軸を持つグラフはjavafx.scene.chart.XYChartクラスで表されます。

 そして、XYChartクラスのサブクラスが棒グラフ(BarChartクラス)や線グラフ(LineChartクラス)になります。グラフの基本的な要素はXYChartクラスで定義されているため、サブクラスの使い方も似通っています。

 XYChartクラスでは、x軸、y軸をjavafx.scene.chart.Axisクラスで表します。とはいうものの、Axisクラスを直接使用することはなく、表す対象によってサブクラスを使い分けます。標準で提供されているのが、数値を使用するNumberAxisクラスとカテゴリーを使用するCategoryAxisクラスです。