Как добавить imageView к элементу региона Java?

Я хотел бы знать, как я могу добавить элементы ImageView к элементу региона в JavaFx 2.1.

Возможно, я неправильно использую этот элемент, но AFAIK это также контейнер для дочерних элементов.

Фон в том, что мне нужна область определенного размера, которая должна отображать элементы изображения независимо от области просмотра в области, поэтому я не могу использовать элемент Group в качестве контейнера.

1 ответ

Решение

Используйте Pane или подкласс Pane.

Панели - это регионы, в которые вы можете добавить дочерних элементов с помощью API getChildren(). Панель очень похожа на группу; Например, имеет простой API для добавления дочерних элементов и явно не определяет расположение дочерних элементов. Это также имеет аспекты региона; например, стиль css, возможность изменения размера и т. д. У регионов есть только неизменяемый список дочерних элементов через их общедоступный API, что означает, что единственный способ добавить к ним дочерних элементов - это создать их подклассы (как это уже сделал Pane для вас). Сам класс Region на самом деле является просто классом строительных блоков для создателей элементов управления, а не тем, что вы создаете в процессе нормальной разработки.

Вот пример добавления узлов ImageView к панели.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.*;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;

public class RegionSample extends Application {
  public static void main(String[] args) throws Exception { launch(args); }
  public void start(Stage stage) throws Exception {
    Pane pane = new Pane();
    pane.setStyle("-fx-background-color: linear-gradient(to bottom right, derive(goldenrod, 20%), derive(goldenrod, -40%));");
    ImageView iv1 = new ImageView(new Image("http://icons.iconarchive.com/icons/kidaubis-design/cool-heroes/128/Ironman-icon.png"));  // Creative commons with attribution license for icons: No commercial usage without authorization. All rights reserved. Design (c) 2008 - Kidaubis Design http://kidaubis.deviantart.com/  http://www.kidcomic.net/ All Rights of depicted characters belong to their respective owners.
    ImageView iv2 = new ImageView(new Image("http://icons.iconarchive.com/icons/kidaubis-design/cool-heroes/128/Starwars-Stormtrooper-icon.png"));
    iv1.relocate(10, 10);
    iv2.relocate(80, 60);
    pane.getChildren().addAll(iv1, iv2);
    stage.setScene(new Scene(pane));
    stage.show();
  }
}
Другие вопросы по тегам