如何在JavaFX2中管理元素优先级?

时间:2013-03-25 07:51:15

标签: user-interface javafx-2 operator-precedence

鉴于此代码:

@Override
public void start(final Stage stage)
{
    final StackPane root = new StackPane();
    final Region r1 =  new Region(), r2 = new Region(), r3 = new Region();

    r1.setMaxSize(400, 400);
    r1.setStyle("-fx-background-color: yellow");
    StackPane.setAlignment(r1, Pos.TOP_LEFT);

    r2.setMaxSize(400, 400);
    r2.setStyle("-fx-background-color: black");
    StackPane.setAlignment(r2, Pos.TOP_RIGHT);

    r3.setMaxSize(400, 400);
    r3.setStyle("-fx-background-color: blue");
    StackPane.setAlignment(r3, Pos.BOTTOM_CENTER);

    root.getChildren().addAll(r1, r2 ,r3);

    final Scene scene = new Scene(root, 600, 600);
    stage.setScene(scene);
    stage.show();
}

输出如下:

enter image description here

是否有任何简单的方法来控制元素优先级,而无需按正确的顺序删除和重新添加后面的所有元素?在这种特殊情况下,我想要做的是使具有yellow背景的元素覆盖其他两个,从而产生这样的结果:

enter image description here

Scene Builder可以使用CTRL+([|])移动元素。目前我能想到的唯一方法是,在代码中执行此操作时,是获取根元素的子元素并以正确的顺序执行删除/添加对。有没有其他方式,比如,某些属性可以管理覆盖优先级?谢谢。

0 个答案:

没有答案