目录
背景:
代码例子:
代码详解:
效果展示:
总结:
背景:
BoderLayout是Java AWT(Abstract Window Toolkit)和Swing图形用户界面(GUI)库中的一个布局管理器。它用于安排组件(如按钮、标签、面板等)在容器(如窗户、面板等)中的位置。BorderLayout容器划分为五个区域:北(NORTH)、南(SOUTH)、东(EAST)、西(WEST)和中心(CENTER),接下将通过一个简单的实例,详细解释如何使用AWT的BorderLayout来布局窗口中的组件。
代码例子:
import java.awt.*;
public class TestBorderLayout { public static void main(String args[]) { Frame f; // 声明一个Frame对象 f = new Frame("Border LAYOUT"); // 创建一个新的Frame对象,并设置其标题为"Border LAYOUT" Button bn = new Button("BN"); // 创建一个标题为"BN"的按钮 Button bs = new Button("BS"); // 创建一个标题为"BS"的按钮 Button bw = new Button("BW"); // 创建一个标题为"BW"的按钮 Button be = new Button("BE"); // 创建一个标题为"BE"的按钮 Button bc = new Button("BC"); // 创建一个标题为"BC"的按钮 // 设置Frame的布局管理器为BorderLayout f.setLayout(new BorderLayout()); // 将按钮添加到Frame中,使用BorderLayout的五个区域 f.add(bn, BorderLayout.NORTH); // 将按钮bn添加到窗口的北部 f.add(bs, BorderLayout.SOUTH); // 将按钮bs添加到窗口的南部 f.add(bw, BorderLayout.WEST); // 将按钮bw添加到窗口的西部 f.add(be, BorderLayout.EAST); // 将按钮be添加到窗口的东部 f.add(bc, BorderLayout.CENTER); // 将按钮bc添加到窗口的中心 f.setSize(200, 200); // 设置窗口的大小为200x200像素 f.setVisible(true); // 使得窗口可见 }
}
代码详解:
1.导入java.awt包,它包含了AWT库的所有类和接口
import java.awt.*;
2.定义TestBorderLayout的公共类,并在其中定义main方法,这是java程序的入口点
public class TestBorderLayout { public static void main(String args[]) { // ... }
}
3.创建Frame和按钮
public class TestBorderLayout { public static void main(String args[]) { // ... }
}
4.设置布局管理器(虽然Frame默认使用BorderLayout,但现实设置它可以使代码更清晰)
f.setLayout(new BorderLayout());
5.添加组件到Frame
f.add(bn, BorderLayout.NORTH); // ... 以及其他按钮的添加
6.设置窗口大小和可见性
f.setSize(200, 200);
f.setVisible(true);
效果展示:
总结:
属性/特点 | 描述 |
---|---|
区域 | |
北(NORTH) | 容器的顶部 |
南(SOUTH) | 容器的底部 |
东(EAST) | 容器的右边 |
西(WEST) | 容器的左边 |
中心(CENTER) | 占据除了其他四个区域之外的所有空间 |
组件添加 | 使用 add 方法将组件添加到特定区域 |
示例 | frame.add(button, BorderLayout.NORTH); |
组件大小 | |
区域无组件 | 该区域不占用空间 |
区域有组件 | 组件根据其首选大小进行排列,并尽可能填充其所在区域的宽度或高度 |
中心区域 | 组件将尽可能填充容器的剩余空间 |
层次关系 | 如果多个组件被添加到同一个区域,则后添加的组件将显示在前面 |
默认布局 | 在 AWT 的 Frame 和 Swing 的 JFrame 中,BorderLayout 是默认的布局管理器 |
使用场景 | 适用于需要简单、结构化布局的 GUI 应用程序 |
示例场景 | 菜单栏在顶部,状态栏在底部,主要内容区域在中间 |
与其他布局管理器的区别 | 提供了更明确的区域划分和更灵活的空间管理,与 FlowLayout 和 GridLayout 等不同 |
从例子中,我们了解了如何使用AWT的BorderLayout的布局窗口中的组件。BorderLayout是一个常见的布局管理器,它将窗口划分为五个区域:北、南、东、西和中心。每个区域可以放置一个组件,如果多个组件被添加到同一个区域,那么它们将堆叠子啊一起。