JavaFX 的 FlowPane
是一种流式布局的面板,它能够自动将子节点排列成多行或多列,当一行或一列填满后,会自动换行或换列。FlowPane
非常适合用来创建动态的、可适应不同窗口大小的布局。
以下是 FlowPane
的一些基本用法和特性:
-
排列方向:
FlowPane
默认的排列方向是水平的,子节点会从左到右排列。可以通过设置orientation
属性来改变排列方向。 -
对齐方式:可以设置子节点在
FlowPane
中的水平对齐和垂直对齐方式。 -
行间距和列间距:可以通过
vgap
和hgap
属性来设置子节点之间的垂直和水平间距。 -
自动换行:当子节点排列不下当前行或列时,
FlowPane
会自动换行或换列。 -
子节点宽度和高度:可以通过
prefWidth
和prefHeight
属性来设置子节点的首选宽度和高度。
下面是一个简单的 FlowPane
使用案例,演示了如何创建一个包含多个按钮的流式布局面板:
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
public class FlowPaneDemo extends Application {
@Override
public void start(Stage primaryStage) {
// 创建 FlowPane 实例
FlowPane flowPane = new FlowPane();
// 设置 FlowPane 的对齐方式
flowPane.setAlignment(Pos.CENTER);
// 设置 FlowPane 的水平和垂直间距
flowPane.setHgap(10);
flowPane.setVgap(10);
// 创建按钮并添加到 FlowPane
for (int i = 1; i <= 20; i++) {
Button btn = new Button("Button " + i);
flowPane.getChildren().add(btn);
}
// 创建场景并设置 FlowPane
Scene scene = new Scene(flowPane, 300, 200);
// 设置舞台并显示
primaryStage.setScene(scene);
primaryStage.setTitle("FlowPane Demo");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
在这个例子中,我们创建了一个 FlowPane
,设置了其对齐方式为居中,并且设置了水平和垂直间距。然后,我们创建了20个按钮并将它们添加到 FlowPane
中。由于 FlowPane
的特性,这些按钮会自动排列成多行,每行的按钮数量取决于 FlowPane
的宽度。
当你运行这个程序时,你会看到一个包含20个按钮的窗口,这些按钮会自动换行以适应窗口的宽度。你可以通过调整窗口的大小来观察按钮如何动态地重新排列。
标签:FlowPane,布局,javafx,流式,按钮,import,对齐,节点 From: https://www.cnblogs.com/zllw946/p/18262512