容器是 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 类创建的窗口”文本。具体实现代码如下:
上述代码创建的 JFrameDemo 类继承了 JFrame 类,因此 JFrameDemo 类可以直接使用 JFrame 类的方法。setTitle() 方法用来设置窗口标题,setDefaultCloseOperation() 方法用来设置响应方式,即当单击“关闭”按钮时退出该程序。
在构造方法中使用 JLabel 类创建一个标签对象 jl,其参数是标签的文本提示信息。JFrame 框架的 getContentPane() 方法获取了内容窗格对象,并使用 add() 方法将标签添加到内容窗格上。最后的 setVisible() 方法是从父类中继承的方法。
程序运行的窗口结果如图 2 所示。
图2 窗口运行结果