如何使用 FlowLayout

Note:

本课涵盖了手工编写布局代码,这可能会很困难。如果您不希望了解布局 管理 的所有详细信息,则可能更喜欢将GroupLayout布局 管理 器与构建器工具结合使用来布局 GUI。 NetBeans IDE是此类构建器工具之一。否则,如果您想手工编码并且不想使用GroupLayout,那么推荐使用GridBagLayout作为下一个最灵活,功能最强大的布局 管理 器。

如果您对使用 JavaFX 创建 GUI 感兴趣,请参阅在 JavaFX 中使用布局

FlowLayout类提供了一个非常简单的布局 管理 器,默认情况下,JPanel对象使用该布局 管理 器。下图表示使用流布局的应用程序的快照:

FlowLayoutDemo 的快照

单击启动按钮以使用Java™Web 开始(下载 JDK 7 或更高版本)运行 FlowLayoutDemo。另外,要自己编译和运行示例,请查阅example index

该演示的完整代码在FlowLayoutDemo.java文件中。

FlowLayout类将组件排成一排,并按其首选大小调整大小。如果容器中的水平空间太小而无法将所有组件放在一行中,则FlowLayout类将使用多行。如果容器比一排组件所需的宽度要宽,则默认情况下,该行在容器内水平居中。要指定该行是向左对齐还是向右对齐,请使用带有对齐参数的FlowLayout构造函数。 FlowLayout类的另一个构造函数指定围绕组件放置多少垂直或水平填充。

下面的代码段创建了一个FlowLayout对象及其 管理 的组件。

FlowLayout experimentLayout = new FlowLayout();

...

    compsToExperiment.setLayout(experimentLayout);

    compsToExperiment.add(new JButton("Button 1"));
    compsToExperiment.add(new JButton("Button 2"));
    compsToExperiment.add(new JButton("Button 3"));
    compsToExperiment.add(new JButton("Long-Named Button 4"));
    compsToExperiment.add(new JButton("5"));

选择“从左到右”或“从右到左”选项,然后单击“应用方向”按钮以设置组件的方向。以下代码段将“从左到右”组件方向应用于experimentLayout

compsToExperiment.setComponentOrientation(
                ComponentOrientation.LEFT_TO_RIGHT);

FlowLayout API

下表列出了FlowLayout类的构造函数。

ConstructorPurpose
FlowLayout()构造一个新的FlowLayout对象,该对象的居中对齐以及水平和垂直间隙(默认大小为 5 像素)。
FlowLayout(int align)使用指定的对齐方式以及水平和垂直间隙(默认大小为 5 像素)创建一个新的流布局 管理 器。对齐参数可以是FlowLayout.LEADINGFlowLayout.CENTERFlowLayout.TRAILING。当FlowLayout对象控制容器从左到右的组件方向(默认)时,LEADING值指定要左对齐的组件,而TRAILING值指定要右对齐的组件。
FlowLayout(int align,int hgap,int vgap)创建具有指示的对齐方式和指示的水平和垂直间隙的新流布局 管理 器。 hgapvgap参数指定要放置在组件之间的像素数。

使用 FlowLayout 的示例

下表列出了使用FlowLayout类的代码示例,并提供了指向相关部分的链接。

ExampleWhere DescribedNotes
FlowLayoutDemoThis page将内容窗格设置为使用FlowLayout。如果将RIGHT_TO_LEFT常量设置为true并重新编译,则可以看到FlowLayout如何处理具有从右到左组件方向的容器。
CardLayoutDemo如何使用 CardLayout将组件很好地居中放在BorderLayout的顶部,然后将组件放在使用FlowLayoutJPanel中。
ButtonDemo如何使用按钮,复选框和单选按钮使用JPanel的默认FlowLayout
TextInputDemo如何使用格式化的文本字段使用带有右对齐的FlowLayout的面板,其中包含两个按钮。