@Neonoviiwolf
Flutter developer

JavaFx как получить параметры из контроллера?

Доброго
Есть VBox, в него юзер добавляет Node, содержащий Image. Т.е. в VBox динамически заполняется children. В какой-то момент мне нужно узнать получить данные из контрола этих Node, как это сделать?
Что делаю, пробегаюсь циклом по детям VBox, получаю ссылки на детей, а как получить данные из контроллера? (Node содержит image, мне нужно получить путь к нему)
пример, но не работает
for (int i = 0; view.getVBox_image().getChildren().size() > i; ++i) {

                V_ItemImageIcon itemImage = (V_ItemImageIcon) view.getVBox_image().getChildren().get(i);

                image.add(itemImage.getFileImage());
            }

Error:(174, 101) java: incompatible types: javafx.scene.Node cannot be converted to com.view.vItemImageIcon.v.V_ItemImageIcon
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 2
Neonoviiwolf
пробовали в xml дать fx:id
<Image fx:id="dialogImage" url="@image.png"/>

в коде создать переменную в классе контролера
@FXML
		private Image dialogImage;

и просто у ее вызвать метод
if (dialogImage != null) {
				System.err.println(String.format("The image url: %s",
						dialogImage.impl_getUrl()));
			}

вроде дает же правильный ответ что то типа:
The image url: file:/<путь к моему проекту>/src/main/resources/image.png


a для каста Node в напр. ImageView посадите fx:id на Label
<Label fx:id="dialogImageLabel">
          <graphic>
            <ImageView fx:id="dialogImageView" fitHeight="128" fitWidth="128" pickOnBounds="true" preserveRatio="true">
              <image>
                <Image fx:id="dialogImage" url="@watchglass.png"/>
              </image>
            </ImageView>
          </graphic>
      </Label>

и
for (int i = 0; i != dialogImageLabel.getChildrenUnmodifiable()
								.size(); i++) {
Node itemNode = dialogImageLabel.getChildrenUnmodifiable().get(i);
			if (itemNode.getClass().getName().equals("javafx.scene.image.ImageView")) {
				ImageView imageView = (ImageView) itemNode;
								System.err.println(String.format("The child image url: %s",
										imageView.getImage().impl_getUrl()));
				}

}
то же самое

The child image url: file:/<путь к проекту>/src/main/resources/картина.png
Ответ написан
Комментировать
@Neonoviiwolf Автор вопроса
Flutter developer
не совсем то, наверно неудачно объяснил
VBox - контейнер, в него клиент добавляет Pane, который в свою очередь содержит некоторые объекты, включая image. Мне нужно как-то получить данные из контроллера Pane, точнее ссылку на Image
5d0497db6147b563598333.png
5d0497e22537c206935030.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы