Изображение моего объекта не отображается в окне - PullRequest
0 голосов
/ 28 мая 2019

Я создал свой собственный объект 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>
...