1. ホーム
  2. java

[解決済み] 内部グラフィックスがまだ初期化されていない: javafx

2022-02-09 17:39:33

質問

を書こうとしているのですが javaFx アプリケーションは、ウィンドウ内に複数の画像を表示します。
簡単に説明すると、私は enum という名前のクラスは Candy で、各キャンディはいくつかのプロパティとそれを表す画像ファイルへのパスを持っています。
のコンストラクタで javafx.application クラス ( Table ) その画像を配列リストに詰め込みたいので、ここまで書きました。

public class Table extends Application {

    ArrayList<Image> images;

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("CandyFx");
        primaryStage.show();
    }

    public Table() {
        images = new ArrayList<Image>();
        for (Candy candy : Candy.values()) {
            File file = new File (candy.getImagePath());
            Image image = new Image(file.toURI().toString());
            images.add(image);
        }
    }
}

のインスタンスを作成するたびに、そのインスタンスにアクセスできるようになりました。 Table クラスは、アプリケーションから java.lang.RuntimeException: Internal graphics not initialized yet .
どのように私は私がしなかったと思われる初期グラフィックスをすることができますか?

解決方法は?

まず、Linuxを使用している場合、JavaFXを実行するためにGTK 2.18が必要です。

libswt-gtk-3-java

この例外は、画面がnullであるときにスローされます。 start メソッドを使用します。メソッドの直前で primaryStage.show(); .

このリンクもご覧ください

http://cr.openjdk.java.net/~vadim/RT-33475/webrev.00/modules/graphics/src/main/java/com/sun/glass/ui/Screen.java.html