1

このコードを考えると:

@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();
}

出力は次のとおりです。

ここに画像の説明を入力

正しい順序で続くすべての要素を削除して再追加することなく、要素の優先順位を制御する簡単な方法はありますか? この特定のケースで私がやりたいことは、yellow背景を持つ要素を作成して他の2つをオーバーレイすることです。これにより、次のようになります。

ここに画像の説明を入力

Scene Builderで要素を移動できますCTRL+([|])。ただし、コードでこれを行う場合、現在考えられる唯一の方法は、ルート要素の子を取得し、正しい順序で削除/追加のペアを実行することです。オーバーレイの優先度を管理するプロパティなど、他の方法はありますか? ありがとうございました。

4

0 に答える 0