BorderLayout (布局管理器)

17 Mar 2025 | 5 分钟阅读

Java 布局管理器

布局管理器用于以特定的方式排列组件。 Java 布局管理器 方便我们控制 GUI 窗体中组件的位置和大小。 LayoutManager 是一个接口,由布局管理器的所有类实现。 以下类代表布局管理器:

  1. java.awt.BorderLayout
  2. java.awt.FlowLayout
  3. java.awt.GridLayout
  4. java.awt.CardLayout
  5. java.awt.GridBagLayout
  6. javax.swing.BoxLayout
  7. javax.swing.GroupLayout
  8. javax.swing.ScrollPaneLayout
  9. javax.swing.SpringLayout 等。

Java BorderLayout

BorderLayout 用于在五个区域中排列组件:北、南、东、西和中心。 每个区域(区域)只能包含一个组件。 它是框架或窗口的默认布局。 BorderLayout 为每个区域提供五个常量:

  1. public static final int NORTH
  2. public static final int SOUTH
  3. public static final int EAST
  4. public static final int WEST
  5. public static final int CENTER

BorderLayout 类的构造函数

  • BorderLayout(): 创建一个边框布局,但组件之间没有间隙。
  • BorderLayout(int hgap, int vgap): 创建一个边框布局,组件之间具有给定的水平和垂直间隙。

BorderLayout 类的示例:使用 BorderLayout() 构造函数

文件名: Border.java

输出

BorderLayout class

BorderLayout 类的示例:使用 BorderLayout(int hgap, int vgap) 构造函数

以下示例使用参数化构造函数 BorderLayout(int hgap, int gap) 在按钮之间插入水平和垂直间隙:

文件名: BorderLayoutExample.java

输出

BorderLayout class

Java BorderLayout:不指定区域

即使我们不指定区域,JFrame 类的 add() 方法也可以工作。 在这种情况下,只有最新添加的组件会显示在框架中,而先前添加的所有组件都会被丢弃。 最新组件覆盖整个区域。 以下示例显示了相同的内容。

文件名: BorderLayoutWithoutRegionExample.java

输出

BorderLayout class

Java 布局管理器 MCQ

1. 以下关于 Java 中 BorderLayout 的语句哪个是正确的?

  1. BorderLayout 可以在每个区域中容纳多个组件。
  2. BorderLayout 中组件之间的默认间隙为 5 像素。
  3. 如果将组件添加到已包含组件的区域,则新组件将替换现有组件。
  4. CENTER 区域是 BorderLayout 中唯一需要的区域。

答案:C)

解释: 在 BorderLayout 中,每个区域(NORTH、SOUTH、EAST、WEST、CENTER)只能容纳一个组件。 如果将新组件添加到已经有组件的区域,则新组件将替换现有组件。


2. 在 BorderLayout 中,当您使用不指定区域的 add() 方法时,会发生什么情况?

  1. 默认情况下,组件被添加到 CENTER 区域。
  2. 默认情况下,组件被添加到 NORTH 区域。
  3. 最近添加的组件将替换之前的组件并覆盖整个区域。
  4. 会抛出 IllegalArgumentException。

答案:C)

解释: 当在 BorderLayout 中没有指定区域时,每个后续添加的组件将替换前一个组件,导致只有最后添加的组件可见并覆盖整个区域。


3. 在构造函数 BorderLayout(int hgap, int vgap) 中,参数 hgap 和 vgap 代表什么?

  1. 可以水平和垂直添加的组件的数量。
  2. 组件之间允许的最小和最大间隙。
  3. 组件之间的水平和垂直间隙,分别。
  4. 布局中组件内部的填充。

答案:C)

解释: hgap 参数设置组件之间的水平间隙(空间),而 vgap 参数设置 BorderLayout 中组件之间的垂直间隙。


4. 使用命令 frame.add(button, BorderLayout.NORTH) 将按钮添加到 BorderLayout 时,这对按钮的放置有什么影响?

  1. 该按钮将放置在框架的顶部中心。
  2. 该按钮将拉伸以填充框架的整个顶部区域。
  3. 该按钮将放置在框架的左上角。
  4. 该按钮将放置在框架的右上角。

答案:B)

解释: 在 BorderLayout 中,将组件添加到 NORTH 区域会导致该组件水平拉伸以填充框架顶部的整个宽度。


5. 当组件之间没有指定间隙时,BorderLayout 的默认行为是什么?

  1. 组件紧挨着彼此放置,中间没有空间。
  2. 组件之间应用 5 像素的默认间隙。
  3. 组件的默认填充为 10 像素。
  4. 组件稍微重叠。

答案:A)

解释: 当未指定间隙时,BorderLayout 将组件紧邻彼此放置,中间没有空间,从而形成紧凑的布局。


下一个主题GridLayout