容器是 SWING GUI 组件的组成部分。一个容器提供了一个可以放置组件的空间。在 AWT 中,一个容器是组件本身,并且它增加了功能来添加组件本身。下面是需要考虑的注意事项。
容器的子类被称为容器。例如 JPanel,JFrame 和 JWindow。
容器可以仅仅添加组件到自身。
从功能上可分为:
顶层容器:JFrame、JApplet、JDialog、JWindow共4个
中间容器:JPanel、JScrollPane、JSplitPane、JToolBar
使用 JFrame 类创建 GUI 界面时,其组件的布局组织示意如图 1 所示。
图1 JFrame窗口组件组织
在图 1 中显示有“大家好”的 Swing 组件需要放到内容窗格的上面,内容窗格再放到 JFrame 顶层容器的上面。菜单栏可以直接放到顶层容器 JFrame 上,而不通过内容窗格。内容窗格是一个透明的没有边框的中间容器。
下面是当使用 SWING 设计 GUI 事件时常用的容器列表。
序号 | 容器 & 描述 |
---|---|
1 |
Panel JPanel 是一个最简单的容器。它提供了任何其他组件可以被放置的空间,包括其他面板。 |
2 |
Frame JFrame 是一个带有标题和边界的顶层窗口。 |
3 |
Window JWindow 对象是一个没有边界和菜单条的顶层窗口。 |
在了解窗口组件 JFrame 的语法之后,下面使用 JFrame 类创建一个窗口。要求设置窗口的标题为“Java 第一个 GUI 程序”,并向窗口内添加“这是使用 JFrame 类创建的窗口”文本。具体实现代码如下:
- package ch17;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import java.awt.*;
- public class JFrameDemo extends JFrame
- {
- public JFrameDemo()
- {
- setTitle("Java 第一个 GUI 程序"); //设置显示窗口标题
- setSize(400,200); //设置窗口显示尺寸
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //置窗口是否可以关闭
- JLabel jl=new JLabel("这是使用JFrame类创建的窗口"); //创建一个标签
- Container c=getContentPane(); //获取当前窗口的内容窗格
- c.add(jl); //将标签组件添加到内容窗格上
- setVisible(true); //设置窗口是否可见
- }
- public static void main(String[] agrs)
- {
- new JFrameDemo(); //创建一个实例化对象
- }
- }
上述代码创建的 JFrameDemo 类继承了 JFrame 类,因此 JFrameDemo 类可以直接使用 JFrame 类的方法。setTitle() 方法用来设置窗口标题,setDefaultCloseOperation() 方法用来设置响应方式,即当单击“关闭”按钮时退出该程序。
在构造方法中使用 JLabel 类创建一个标签对象 jl,其参数是标签的文本提示信息。JFrame 框架的 getContentPane() 方法获取了内容窗格对象,并使用 add() 方法将标签添加到内容窗格上。最后的 setVisible() 方法是从父类中继承的方法。
程序运行的窗口结果如图 2 所示。
图2 窗口运行结果