今回は、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クラスではクッキーや履歴なども扱うことができます。
グラフ
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クラスです。