Я создал свой собственный объект Stone, расширяющий класс Blocks, который расширяет класс Parent.Чтобы проверить, работает ли он, я вызвал метод прослушивателя событий, реагирующий на событие, вызванное одним из моих пока неиспользованных пунктов меню.Но когда я нажимаю на этот пункт меню, к которому я прикрепил метод, изображение не отображается.
Я также пытался добавить ../../ перед URL-адресом, если он ищет файл с нижнего уровня, где активирован исполняемый код, и он работает, если я просто добавляю изображениек моему файлу fxml без ссылки на объект, он работает.Но как только я пытаюсь добавить сам объект в свою опорную панель или добавить изображение объекта (Stone.image) в качестве изображения моего Imageview, он больше не работает.
Воткод моего камня:
public class Stone extends Blocks{
private static final boolean VISIBLE = true;
private static final boolean TRANSPARENT = false; //A property of every block, that defines, if the character can walk through it.
private static Image image = new Image("file: ../../../../../.idea/assets/images/stone.png");
ImageView imageView = new ImageView(image);
}
И вот тут я пытаюсь добавить его в свою Якорную панель:
public void test(ActionEvent event) {
Stone stone = new Stone();
AnchorPane.getRightAnchor(stone);
Controller.drawplace.getChildren().add(stone);
}
Также попробовал так:
public class Stone extends Blocks{
private static final boolean VISIBLE = true;
private static final boolean TRANSPARENT = false; //A property of every block, that defines, if the character can walk through it.
private static Image image = new Image("file: ../../../../../.idea/assets/images/stone.png");
}
@FXML
protected ImageView stone;
@FXML
private void test(ActionEvent event) {
stone.setImage(Stone.image);
}
Мой fxml-файл:
<AnchorPane fx:id="drawplace" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="969.0" styleClass="bodymain" stylesheets="@gui.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<children>
<ImageView fx:id="stone" fitHeight="200.0" fitWidth="200.0">
</ImageView>
</children>