Java入门(10) 布局管理本章目标: 在第9章中,我们学习了许多用来构建GUI程序的部件,不过到现在为止,我们还无法让其“听话”的按照我们的意图摆放这些部件。在本章中,我们要学习如何进行部件的布局,也就是让部件能够“听话”地摆放在我们想放的位置上。我们将学会通过边框、网格、组合和GridBagLayout四种方式进行部件的布局管理。 10.1 边框布局 传授新知 我们回顾一下在第9章中,我们在程序中总是使用以下两条语句定义了一个容器:
凭着我们现在所积累的阅读程序的功夫,应该能够很快地知道我们通过第一条语句创建了一个容器JPanel类的panel1。 而接下来,我们则调用了panel1.setLayout(new FlowLayout()),在上一章中,我们一直没有对它进行相应的分析。现在该是揭开它的面纱的时候了。 单词layout的中文意思是“布局”、“布置”,setLayout就是设置布局格式。也就是说,容器panel1的方法setLayout是用来设置布局格式的。那么,我们一直用的是什么模式呢?对,就是后面括号里的FlowLayout()。顾名思义,也就是流布局方式。这是一种顺其自然的方式:从左到右,一个个对象地摆放,摆不下,就摆到下一行。所以,我们就无法去控制它。 从本章开始,我们就要学习一种控制布局的方法。在Java语言中,提供了各种布局管理器,以便大家能够达到这一目的。 通常我们最常使用的布局管理器是:Border Layout(边框布局管理器),如下图所示,边框布局管理器将一个屏幕分成了五个部分:东、南、西、北、中。
图10-1 边框布局管理示意图 如果要使用这种边框布局管理进行布局控制,我们必须先将“容器”设置为“边框布局控制模式”,具体来说,就是当调用setLayout方法为容器设置布局控制模式时,参数设置为BorderLayout。例如:
然后,我们就可以在使用容器的add方法添加部件时,附加上位置参数,使得该部件显示在指定的位置上。位置参数分别是: BorderLayout.NORTH 位置为北 BorderLayout.SOUTH 位置为南 BorderLayout.EAST 位置为东 BorderLayout.WEST 位置为西 BorderLayout.NORTH 位置为中心 实例说明 下面,我们就来试一试,使用按钮排出五个方向!请创建一个testBorder.java,输入以下源程序: 源程序:useTextArea.java
然后,我们使用javac编译这个程序,然后编辑一个显示这个Java Applet的HTML页面。最后调用appletviewer来观察这个页面,如下图所示:
图10-2 程序testBorder.java的输出(1)
图10-3 程序testBorder.java的输入(2) 为了试一下,如果并没有在每个位置都安排一个部件,那么会怎么样呢?我们修改一下程序,将panel1.add(west,BorderLayout.WEST);这一行注释掉(就是在前面加上“//”号),也就是不显示西边的按钮,看一下结果如何。正如上图(图10-3)所示,西边由于没有部件,因此“中”就朝西靠,“占领”了它的位置。 而同样的,如果没有了南边北边,正如下图(10-4)所示,其它部件就会占领其位置:
图10-4 程序testBorder.java的输出(3)
图10-5 程序testBorder.java的输入(4) 而如果我们修改一下程序,让中间的按钮不显示的话,就会出现如图10-5的样子,中间的区域并未并占领,而是空在那里了!这是与其它位置不同的地方,大家一定要记住。 一些提示: 其实这很好理解,如果中间的那一块的位置被其它位置上的部件占领的话,就会使得分不清“东”、“南”、“西”、“北”了。倒成了“左上角”、“左下角”、“右上角”、“右下角”了。 自测练习 1) 使用____________位置参数,能够使一个部件位于容器的顶部。 a. Layout.TOP b. BorderLayout.TOP 上一篇:Php4中文手册 下一篇:Java入门(11) 让程序更动人 更多相关文章
|
推荐文章
精彩文章
|