私はウィンドウ内にjavaFx
のアプリケーションwhit複数の画像を書こうとしています。
短い話は、私がCandy
という名前のenum
クラスを持っていて、それぞれのキャンディがそれを表す画像ファイルへのいくつかのプロパティとパスを持っていることです。
私javafx.application
クラス(Table
)のコンストラクタで、私はそれらの画像を配列リストを埋めるためにしたいので、私はこれまでのところ、これを書いた: 今
内部グラフィックスはまだ初期化されていません:javafx
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の問題追跡に関連するコメントを参照してください:[「内蔵グラフィックスが」初期化されるまで、RT-30796は、JavaFXのイメージを作成できません](https://javafx-jira.kenai.com/browse/RT-30796 )。 – jewelsea
また、Tableクラスのインスタンスを手動で作成することは絶対にしないでください(たとえば、 'new Table()'を書かないでください)。テーブルインスタンスはJavaランチャによって作成されます。JavaFXアプリケーションの詳細については、[JavaFX Application documentation](http://docs.oracle.com/javase/8/javafx/api/javafx/application/Application.html)を参照してください。ライフサイクル。また、[JavaFXアプリケーションは複数回起動できません](http://docs.oracle.com/javase/8/javafx/api/javafx/application/Application.html#launch-java.lang.String ..) .-)。 – jewelsea
@jewelseaありがとうございます。しかし、もし私が別の関数から呼び出されたいという、私のアプリケーションに(画面上の何かの位置を変更するメソッドのような)特別なメソッドをいくつか持たせたいのであればどうしますか? (作成したインスタンスでメソッドを呼び出すことができないため) – AliLotfi