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