8.2.5 CardLayout布局管理器

8.2.5 CardLayout布局管理器

Cardlayout管理器是最复杂的布局管理器之一。使用了该管理器,可以创建如卡片盒之类的布局盒,然后从一种布局翻动到另一种布局。这类显示布局管理的一个例子是Windows NT中的属性页对话框。

Cardlayout类常用的方法如下:

public CardLayout()

构造器。建立一个新的CardLayout类对象。

public CardLayout(int hgap,int vgap)

构造器。建立一个新的CardLayout 类对象,水平间隙为hgap个像素,垂直间隙为vgap个像素。

public int getHgap()

返回水平简隙。

public ing getVgap()

返回垂直间隙。

【例8-7】卡片布局管理示例。

问题陈述:有五张卡片分别标明“大学英语”,“数据库技术”,“Java程序设计”,“计算机网络”,“计算机专业英语”五门课程名称的字样,有两个按钮分别标明“上一科”和“下一科”。要求设计一个程序,使用卡片布局管理进行布局,当按下“上一科”时显示上一门课程的名称,第1门课程接最后一门课程,当按下"下一科"按钮时显示下一门课程名称,最后一门课程接第一门课程。源程序如下:

img352

img353

【程序说明】

1)程序第19~25行建立五张卡片放置在coursepanel面版中,以卡片布局管理。

2)第26~28行建立两个按钮后放置在selectpanel面版中。

3)第29~31行将selectpanel和coursepanel面版加入以流式布局管理的版面中。

4)第32~33行处理按钮元件所触发的事件。

5)按钮元件所触发的事件委托actionPerformed()方法,选择其中一个按钮“上一科”或“下一科”时,将在coursepanel版面上显示上一门课程或下一门课程名称的卡片。

程序运行结果如图8-8所示。

img354

图8-8 例8-7程序运行效果