2012-06-24 1 views
2

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

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

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

ответ

6

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

Panes are Region s, к которым вы можете добавить детей, используя getChildren() api. Панель очень похожа на Group; например имеет простой api для добавления детей и явно не размещает местоположение детей. Он также имеет аспекты Региона; например css styleable, resize able и т. д. У региона есть только немодифицируемый список детей через их открытый API, а это означает, что единственный способ добавить к ним детей - это подклассы их (как это делает Пане для вас уже). Сам класс 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(); 
    } 
}