FOUNDitech-program.com上記の記事でも書いた通り、JavaFXが使えないと実は困るんですよね。OpenJDKではJavaFXの機能がありませんが、代わりにOpenJFXをダウンロードし、設定することでJavaFXの機能がOpeんJDKでも使えるようになります。「OpenJDKに切り替えたものの、JavaFXが使えなくなった!」なんてことになってしまわないよう、「OpenJFX」の設定や使い方などを解説していきます。「jdeps」でモジュールの確認Windowsの場合Macの場合まとめOpenJFXをダウンロードするまずは下記のリンクにアクセスし、「OpenJFX」をダウンロードします。JavaFXopenjfx.ioそしたら、赤い矢印で示された部分、「Downloads」をクリックし、ファイルをダウンロードしてください。ファイルをダウンロードし、解凍すると「javafx-sdk-11.0.1」というフォルダが出来上がるはずです。(OSやバージョンによって名前が微妙に異なります)これでOpenJFXのダウンロードは完了します。OpenJFXの設定では次にOpenJFXの設定を行い、実際にJavaで動かせるようにします。いっても、実は設定なしでもJavaで動かすことはできます。上記のように、「javafx-sdk-11.0.1」フォルダ内で実行すれば、設定を行う必要はありません。(モジュールの指定に関しては後に説明します)ただ、JavaFXのプログラムを使うためにわざわざ「javafx-sdk-11.0.1」フォルダ内にプロジェクトフォルダを何個も置くことはしたくありません。そこで「javafx-sdk-11.0.1」フォルダのパスを設定してあげます。Windowsの場合Windowsの場合、パスを設定すると言ったら「環境変数のPathを設定」することになります。「スタートメニュー」から「検索窓」に「環境変数」と入力し、「環境変数の設定」を選択してください。「javafx-sdk-11.0.1」フォルダのパスを入力してください。入力したら「OK」ボタンを押して設定を完了させてください。Macの場合Macの場合、「.bash_profile」という隠しファイルに設定を入力します。次に、「.bash_profile」という隠しファイルを編集します。.bash_profile上記のコマンドで「.bash_profile」の編集が行えます。「.bash_profile」がない場合は、新たにファイルを作成する必要があります。以下のコマンドで「.bash_profile」を作成してください。・「i」キーで編集モードにする。・「ESC」キーで編集モードを終了する。・編集モードを終了した状態で、「:wq」と打ち、エンターを押すことで上書き保存して終了することができます。以上の使い方を知っていれば編集が行えるので、以下のコードを入力してください。JavaFXLib=$JavaFXLib:~/javafx-sdk-11.0.1/lib/「JavaFXLib」というのは任意の名前です。「JavaFXLib:」以降の文は、「OpenJFX」のライブラリがある「lib」フォルダのパスです。「javafx-sdk-11.0.1」の部分は、ご自身のOSやバージョンによって名前が異なるので、フォルダ名をしっかり確認してみてください。JavaFXのプログラムを動かすそれでは実際にテストコードを作成し、JavaFXのコードを動かしてみます。ウィンドウを表示する}}このテストコードをコンパイルして実行します。Main「-p」の引数に「JavaFXLib」と入力しましたが、この名前はご自身が設定した名前と一致させてください。「Windows」と「Mac」の両方で「–add-modules」という項目に「javafx.controls」という引数を入力しましたが、これは一体なにかというと、モジュール名です。今回のテストコードでは「javafx.application」と「javafx.stage」というパッケージをインポートしていますが、この2つのパッケージを実際に使うためにはモジュールというのをコンパイル・実行の際に指定しなくてはなりません。それが「javafx.controls」なのです。そこで、それ以外のモジュールを使うべきか否か、このクラスはどのモジュールを指定すればいいのか、そういった情報が必ず必要になるので、次の項目で使用するモジュールの確認を行なっていきます。「jdeps」コマンドを使うと、プログラムで使用しているJavaFXのクラスがどのモジュールに依存しているかを知ることができます。Main.classこのように、「–module-path」と「-s」にそれぞれ「パス」と「クラス名」を指定します。この「パス」は先ほど設定した「lib」フォルダのパスとなります。「Windows」ならそのまま「lib」を、「Mac」なら「$JavaFXLib」(ご自身で設定した名前)を指定します。java.base...省略このように、「Main」クラスは「javafx.graphics」というモジュールに依存するクラスを使用していることがわかります。「javafx.controls」を指定したかというと、実は「javafx.controls」を指定すれば「javafx.base」と「javafx.graphics」の両方を指定したことになるのです。普通は「javafx.controls」を指定してしまいます。まとめいかがでしたでしょうか。「OpenJFX」に代表されるように、こういった風に別のライブラリを駆使してプログラミングを行うことは「Java」が今まで進めてきたことですので、今後もプロジェクト移行化に次々と対応する場面があると思います。いった時にしっかりとライブラリに関する知識を持っておくことは非常に重要ですので、この機会にライブラリについて勉強してみてはどうでしょうか。マーカー部分の記述は、ラムダ式を用いて簡略化することができます。現状では、弾がプレイヤーの左側から発射されています。弾は真ん中から発射されてほしいものです。マップチップは小さいウィンドウで表現します。MyCanvasクラスはCanvasクラスを継承したクラスで、マップの描画を担当します。Javaで作られるアプリケーションは、クラスという部品が集まってできています。「Button」クラスや「Label」クラスなどがわかりやすいと思います。コメントをキャンセルメールアドレスが公開されることはありません。R1カテゴリーJavaJavaFXJavaScriptPythonRこのサイトの管理人IT系だんしプログラミングが大好きな人。趣味でゲームやツール製作をしながら、プログラミング記事を書き続けています。