操作
調査 #94
未完了JavaFXのサードパーティ・ライブラリChartFXでスペクトラム表示
開始日:
2019/09/22
期日:
進捗率:
0%
予定工数:
説明
調査目的:JavaFX標準のLineChartは大量のデータを扱うのに不得手であり、科学技術分野向けに大量のデータを高速に描画できるとされるChartFXを試してみる。
調査結果:簡潔なスペクトラム表示プログラムを作成し1万点列のデータを表示し速度を評価する
完了条件:評価結果を書く
高橋 徹 さんが5年以上前に更新
IntelliJ IDEAでGradleプロジェクトを作成
- [File]メニュー > [New] > [Project...] で「New Project」画面を開く
- 左側ペインで[Gradle]を選択、右側ペインで[Java]にチェック、Project SDK欄は[Oracle JDK 13]を選択
- [Next]ボタンをクリックし、次の遷移画面で[ArtifactId]にjarファイル名(プログラムの名を表す命名とする)として[spectrum_viewer]を記載、[Version]にプログラムのバージョン名として[0.1.0]を記載
- [Next]ボタンを押し、次の遷移画面で[Project location]欄に開発するディレクトリを記載、[Finish]ボタンをクリック
build.gradleファイルを編集
- gradleのプラグインに、Javaアプリケーション、JavaFX開発を指定
plugins { - id 'java' + id 'application' + id 'org.openjfx.javafxplugin' version '0.0.8' }
- 標準のjavaプラグインでは、gradleタスクとしてbuild、jarはあるがrunがないのでapplicationプラグインを使用
- JavaFXを利用するのにjavafxプラグインが便利(OpenJFXのドキュメントに解説した)
- メインクラスを定義
+ mainClassName = 'com.torutk.spectrum.SpectrumViewApp'
- applicationプラグインで追加されるrunタスクで実行するメインクラスを定義
- JavaFX開発のプラグイン設定を追記
+ javafx { + version = "13" + modules = [ 'javafx.controls', 'javafx.fxml' ] + }
JavaFXのアプリケーション派生クラス(プログラムのエントリポイント)を作成
- 左側ペイン(Project)でsrc\mainの下の[java]を選択し、右クリックでポップアップメニューから[New] > [Java Class]を選択、「New Java Class」画面で[Class]を選択状態とし、クラス名を記載する。ここでは、[com.torutk.spectrum.view.SpectrumViewApp]と入力した。パッケージcom.torutk.spectrum.viewが自動で追加され、その中にSpectrumViewAppクラスのソースファイルが生成される。
- クラス宣言に、
extends Application
を追記する
この時点では、JavaFXのライブラリが認識されていない。
BuildペインまたはGradleペインのぐるぐるアイコン(Reimport Gradle Project)をクリックする。
高橋 徹 さんが5年以上前に更新
Gradleプロジェクトのソースコードのバージョンがデフォルトでは8だったので13に変更する
- build.gradle
- sourceCompatibility = 1.8 + sourceCompatibility = 13
IntelliJ IDEAの[File]メニュー > [Project Structure...] で、左側ペインでProjectを選択、Project language levelは13となっているが、Gradleプロジェクトの場合はここではなくbuild.gradleファイルに定義しないとダメみたい。
ビルドしたところ、エラー発生
Could not target platform: 'Java SE 13' using tool chain: 'JDK 11 (11)'.解決方法
- 「Settings」画面を開き、左側ペインで[Build, Execution, Deployment] > [Build Tools] > [Gradle]を選択、右側ペインで[Gradle JVM]欄をJDK 13に設定する
高橋 徹 さんが5年以上前に更新
ビルドと実行はできたが、デバッグ実行でエラー発生
FAILURE: Build failed with an exception. * Where: Initialization script 'C:\Users\toru\AppData\Local\Temp\ijresolvers1.gradle' * What went wrong: Could not compile initialization script 'C:\Users\toru\AppData\Local\Temp\ijresolvers1.gradle'. > startup failed: General error during semantic analysis: Unsupported class file major version 57
Gradleのバグレポートに該当すると思われる件あり
https://github.com/gradle/gradle/issues/8681
- IntelliJ IDEA 2019.2に搭載されるGradleは5.2.1であり、JDK 13には対応していない。
- JDK 13に対応するGradleは今後のリリース(6.0)
操作