Как добавить 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();
}
}