前提・実現したいこと
Raspbian os搭載のRaspberry Pi 1 Model B にJavaFXをインストールしjarファイルを動作させることを目指しています。現在、以下のサイトを参考にしてopenjdk 8、openjfxのインストールを実施しました。
https://gist.github.com/jiro4989/ce33b26cc6136171ad1e8804dddf2b21
その後、以下の出力が得られました。
pi@raspberrypi:~ $ java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build1.8.0_212-8u212-b01-1+rpi1-b01)
OpenJDK client VM (build 25.212-b01, mixed mode)
pi@raspberrypi:~ $ apt search openjfx
ソート中... 完了
全文検索... 完了
libopenjfx-java/stable,now 11.0.2+1-1 all [インストール済み、自動]
JavaFX/OpenJFX - Rich client application platform for Java (Java libraries)
libopenjfx-java-doc/stable 11.0.2+1-1 all
JavaFX/OpenJFX - Rich client application platform for Java (Javadoc)
libopenjfx-jni/stable,now 11.0.2+1-1 armh [インストール済み、自動]
JavaFX/OpenJFX - Rich client application platform for Java (native libraries)
openjfx/stable,now 11.0.2+1-1 armhf [インストール済み]
JavaFX/OpenJFX - Rich client application platform for Java
openjfx-source/stable,now 11.0.2+1-1 all [インストール済み、自動]
JavaFX/OpenJFX - Rich client application platform for Java (sources)
以上よりjdkおよびjavafxのインストールは上手くいっているように見えます。
この状態でeclipseでfxmlを元にGUIを構築するデフォルトコード(1)、(2)をコンパイルし、実行可能なjarファイルを作成しました。このjarファイルはwindows 10上で正常に起動しました。
しかし、RPi上で上記のjarファイルを実行した場合画面表示が以下のようになりました。
中心部分に長方形のフォームが形成されているのは問題ないのですが、その周囲が黒色で塗りつぶされています。またタイトルバーも表示されず、フォームの拡大縮小、移動、xボタンによるプログラムの終了ができません。この問題に対する解決策をご教授願います。
※System.out.println関数を用いたところcui部分は正常に動作しているのが確認できました。
該当のソースコード
java
1//デフォルトコード(1)Main.java 2package application; 3 4import javafx.application.Application; 5import javafx.stage.Stage; 6import javafx.scene.Scene; 7import javafx.scene.layout.AnchorPane; 8import javafx.fxml.FXMLLoader; 9 10 11public class Main extends Application { 12 @Override 13 public void start(Stage primaryStage) { 14 try { 15 AnchorPane root = (AnchorPane)FXMLLoader.load(getClass().getResource("Sample.fxml")); 16 Scene scene = new Scene(root,400,400); 17 scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 18 primaryStage.setScene(scene); 19 primaryStage.show(); 20 } catch(Exception e) { 21 e.printStackTrace(); 22 } 23 } 24 25 public static void main(String[] args) { 26 launch(args); 27 } 28} 29 30 31//デフォルトコード(2)Controller.java 32package application; 33 34public class SampleController { 35 36} 37
。