@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
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
30 апр. 2024, в 22:44
500 руб./в час
30 апр. 2024, в 21:45
20000 руб./за проект
30 апр. 2024, в 21:36
1500 руб./в час