javafx.scene.Group

来源:互联网 发布:java中线程同步作用 编辑:程序博客网 时间:2024/05/17 19:58


@DefaultProperty(value="children")public class Groupextends Parent
Group node contains an ObservableList of children that are rendered in order whenever this node is rendered.

Group will take on the collective(集体) bounds of its children and is not directly resizable(可调整大小).

Any transform, effect, or state applied to a Group will be applied to all children of that group. Such transforms and effects will NOT be included in this Group's layout bounds(边界), however if transforms and effects are set directly on children of this Group, those will be included in this Group's layout bounds.(长度和宽度的计算,效果是使用在Group上的话,效果的长度和宽度是不计算的,但是应用在孩子上是要统计的)

package group;import javafx.application.Application;import javafx.geometry.Bounds;import javafx.scene.Group;import javafx.scene.Scene;import javafx.scene.effect.DropShadow;import javafx.scene.paint.Color;import javafx.scene.shape.Rectangle;import javafx.stage.Stage;public class TestGroup2 extends Application{@Overridepublic void start(Stage stage) throws Exception {// TODO Auto-generated method stubGroup g = new Group();Color[] c = new Color[]{Color.RED,Color.ANTIQUEWHITE,Color.AQUA,Color.AQUAMARINE,Color.AZURE};DropShadow ds = new DropShadow();ds.setWidth(30);for (int i = 0; i < 5; i++) {    Rectangle r = new Rectangle();    r.setY(i * 20);    r.setWidth(100);    r.setHeight(10);    r.setFill(c[i]);//    r.setEffect(ds);//很诡异的区别,如果特效应用在Group上,特效的长度宽度是不统计的,但是特效也会应用在孩子上    g.getChildren().add(r);}g.setEffect(ds);//特效会应用到所有的孩子上stage.setScene(new Scene(g));stage.show();Bounds bounds = g.getLayoutBounds();System.out.println(bounds.getHeight());//90 108 System.out.println(bounds.getWidth());//100 128}public static void main(String[] args) {launch(args);}}

By default, a Group will "auto-size" its managed resizable children to their preferred sizes during the layout pass to ensure that Regions and Controls are sized properly as their state changes. If an application needs to disable this auto-sizing behavior, then it should set autoSizeChildren to false and understand that if the preferred size of the children change, they will not automatically resize (so buyer beware(谨慎)!).

Group Example:


原创粉丝点击