Я пытаюсь написать приложение javaFx
с несколькими изображениями внутри окна.
Короче говоря, у меня есть класс enum
с именем Candy
, и у каждой конфеты есть некоторые свойства и путь к файлу изображения, представляющему его.
В конструкторе моего 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
.
Как я могу получить начальную графику, которая кажется, что я этого не сделал?
Показать похожие комментарии в системе отслеживания проблем JavaFX: [RT-30796 Невозможно создать JavaFX изображение до «Внутренняя графика» не инициализируются] (https://javafx-jira.kenai.com/browse/RT-30796). – jewelsea
Кроме того, вы никогда не должны вручную создавать экземпляр класса Table (например, никогда не писать 'new Table()'). Экземпляр таблицы будет создан приложением Java launcher - см. [Документацию по JavaFX Application] (http://docs.oracle.com/javase/8/javafx/api/javafx/application/Application.html) для получения подробной информации о приложении JavaFX жизненный цикл. Также обратите внимание, что [приложение JavaFX нельзя запускать более одного раза] (http://docs.oracle.com/javase/8/javafx/api/javafx/application/Application.html#launch-java.lang.String .. .-). – jewelsea
@jewelsea Спасибо. но что, если я хочу иметь какие-то специальные методы в своем приложении (например, метод, изменяющий положение чего-либо на экране), который я хочу вызвать из другой функции? (потому что я не могу вызывать метод в моем созданном экземпляре) – AliLotfi