JavaFXでデスクトップ帳票アプリを作成するチュートリアル

パッケージ製品開発担当の大です。こんにちは。

今回は、シーオーリポーツビュアーJavaFX版を使用してデスクトップ帳票アプリを作成するチュートリアルです。

このチュートリアルで作成するアプリ

このチュートリアルで作成するアプリ(クリックで拡大)

ウインドウにボタンと帳票を表示する枠があり、ボタンを押すとサンプルドキュメントを表示するだけの簡単なアプリケーションです。

シーオーリポーツビュアー JavaFX版は、JavaFXのコントロールとして構成されているので、手軽に自作のアプリケーションに組み込むことができます。

ここでは、NetBeansJavaFX Scene Builderを使用して、プロジェクトを作成するところから順を追ってやってみたいと思います。

NetBeansでJavaFXプロジェクトを作成する

NetBeansを使用すると、JavaFXアプリケーションのひな形を簡単に作れます。

「ファイル>新規プロジェクト>JavaFX FXMLアプリケーション」を選択して、「次へ」をクリックします。

JavaFX FXMLアプリケーションを作成

JavaFX FXMLアプリケーションを作成(クリックで拡大)

適当なプロジェクト名をつけて「終了」をクリックします。

プロジェクト名をつけて「終了」

プロジェクト名をつけて「終了」(クリックで拡大)

出来上がったプロジェクトを実行してみると、次のようにボタンがひとつだけ配置されたウインドウが立ち上がります。

ボタンを押すと、「Hello, World!」と表示されますね。

Hello, World!

Hello, World!

FXMLをScene Builderで編集する

作成したプロジェクトの中に、拡張子がfxmlのファイルがあります。ダブルクリックするとScene Builderで開きますので開いてみましょう。

(ダブルクリックで開かない場合は、「ツール>オプション>Java>JavaFX」で、Scene Builderのホームが正しく参照されているか確認してみてください)。

FXMLをScene Builderで開く

FXMLをScene Builderで開く(クリックで拡大)

さきほど起動したアプリケーションのレイアウトが表示されますね。

「Hello, World!」のラベルはもう必要ないので、左下の「Document」の階層からLabelを選択して、Deleteキーで削除します。

ラベルを削除

ラベルを削除(クリックで拡大)

今度は、左上の「Library」の歯車アイコンをクリックして設定メニューを、「Import JAR/FXML File…」を選択してください。

Jarのインポート

Jarのインポート(クリックで拡大)

シーオーリポーツビュアーJavaFX版を追加します。まだインストールしていない場合は、ダウンロードページからダウンロードして、適当な場所に展開してください。CrViewFX.jarを選択すると、以下のようにダイアログが表示されます。

インポート・ダイアログ

インポート・ダイアログ(クリックで拡大)

「Import Component」をクリックしてダイアログを終了します。インポートが成功すると、Libraryの「Custom」セクションにCrViewが追加されます。

CrViewが追加された

CrViewが追加された(クリックで拡大)

ドラッグ&ドロップでCrViewを配置しサイズや位置を整えます。

CrViewをドラッグ&ドロップ

CrViewをドラッグ&ドロップ(クリックで拡大)

右側のインスペクタでプロパティを変更できます。メニューバーとツールバーは今回必要ないので消しておきましょう。「View Scale Mode」は「FIT_TO_WIDTH」に変更しておきます。

プロパティを変更

プロパティを変更(クリックで拡大)

コードタブを開いて、「fx:id」に「crView」と入力します。

fx:idを設定

fx:idを設定(クリックで拡大)

これでFXMLの編集は終了です。保存してScene Builderを閉じます。

NetBeansでソースを編集する

再びNetBeansに戻って、作業します。

まずはプロジェクトでJavaFX版ビュアーを使用できるようにします。プロジェクトの右クリックメニューから、「プロパティ>ライブラリ>コンパイル>JAR/フォルダの追加」で、CrViewFX.jarを選択します。

CrViewFx.jarを追加

CrViewFx.jarを追加(クリックで拡大)

FXMLDocumentController.javaを開いて、以下のように修正しましょう。

public class FXMLDocumentController implements Initializable {

    @FXML
    private CrView crView;

    @FXML
    private void handleButtonAction(ActionEvent event) throws MalformedURLException {
        // ビュアーに同梱されているサンプルドキュメントのパスを指定します
        URL document = new URL("file:///C:/Users/demo1/Desktop/CrViewFX/sample.rsi");
        crView.openDocument(document);
    }

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }

}

再度実行してみます。

完成!

完成!(クリックで拡大)

ボタンを押すと、サンプルの帳票が表示されましたね!

最後に

今回は、ローカルに保存されているドキュメントファイルを開くだけの簡単なアプリケーションを作成しました。

シーオーリポーツビュアーJavaFX版を使うと、このように少しの手間で自作のアプリケーションに帳票を表示する機能を追加できます。シーオーリポーツ for Javaを組み合わせることで、動的に帳票を作成して表示することもできます。作成したアプリケーションが、WindowsでもMacでも動作するのも嬉しいですね。

シーオーリポーツビュアーJavaFX版は、無償で利用でき、再配布も可能です。この機会に是非使ってみてください。