ユーザーがスクロールペインのサイズを変更した場合に、スクロールペインに埋め込まれたフローペインにギャップを動的に追加する方法

ジョフリーB。

ユーザーがScrollPaneのサイズを変更した場合、ScrollPaneに埋め込まれたFlowPaneに動的にギャップを追加するにはどうすればよいですか?

GridPaneのあるウィンドウがあります。このGridPaneの中にはScrollPaneがあります。このScrollPaneにはVBoxがあります。

FlowPaneに円の配列を追加し、このFlowPaneをVBoxに追加します。

ウィンドウまたはScrollPaneのサイズに応じて、円間のスペースギャップを動的に設定したいと思います。

今のところ5のギャップを入れましたが、FlowPaneのためにウィンドウのサイズが非常に大きくなると、コンテンツは左側に残ります。横のスペースをすべてとってコンテンツをお願いします。

バインドとchangeListenerを試してみましたが、解決策が見つかりませんでした。

ファビアン

一定数の列と同じサイズの子の特殊なケースでは、GridPane適切なColumnConstraintsを使用することをお勧めします

これにより、列内のノードの配置を指定することに加えて、列幅が同じであることを確認できます。

@Override
public void start(Stage primaryStage) throws Exception {
    final int columns = 2;
    ColumnConstraints columnConstraints = new ColumnConstraints();
    columnConstraints.setPercentWidth(100d/columns);
    columnConstraints.setHalignment(HPos.CENTER);

    GridPane grid = new GridPane();

    for (int i = 0; i < columns; i++) {
        grid.getColumnConstraints().add(columnConstraints);
    }

    for (int i = 0; i < 100; i++) {
        grid.add(new Circle(50), i % columns, i / columns);
    }

    ScrollPane scrollPane = new ScrollPane(new VBox(grid));
    scrollPane.setFitToWidth(true); // make sure GridPane content resizes with viewport

    Scene scene = new Scene(scrollPane, 300, 300);
    primaryStage.setScene(scene);
    primaryStage.show();
}

GridPane行/列のインデックスを調整/設定する必要があるため、の子リストの変更は少し複雑になりますが、それほど難しくはありません。インデックスの子の列インデックスiがでi % columnsあり、行インデックスであることを確認してくださいi / columns

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ