疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

布局管理器—[疯狂java讲义]


 

布局管理器
 
        为了使生成的图形用户界面具有良好的平台无关性,Java语言中,提供了布局管理器这个工具来管理组件在容器中的布局,而不使用直接设置组件位置和大小的方式。例如我们通过如下定义了一个标签(Label):
    Label hello=newLabel(“Hello Java”);
 
        为了让这个hello标签里刚好可以容纳这个”Hello Java”字符串(既没有冗余空间,也没有内容被遮挡),也就是实现该标签的最佳大小,Windows可能应该设置为长100像素,高20像素即可,但换到Unix上,则可能需要设置为长120像素,高24像素。那么一个应用程序从Windows移植到Unix上时,程序需要做大量工作来调整图形界面。
 
        对于不同的组件而言,它们都有一个最佳大小(既没有冗余空间,也没有内容被遮挡),这个最佳大小通常是平台相关的,程序在不同平台上运行时,相同内容的大小可能不一样。如果让程序手动控制每个组件的大小、位置,这将给编程带来巨大的困难,为了解决这个问题,Java提供了LayoutManager来解决这些问题,LayoutManager可以根据运行平台来调整组件的大小,程序员要做的,只是为容器选择合适的布局管理器。
 
        所有的AWT容器都有默认的布局管理器,如果没有为容器指定布局管理器,该容器使用默认的布局管理器。为容器指定布局管理器通过调用容器对象的setLayoutManager(LayoutManager lm)方法来完成。如下代码所示:
c.setLayoutManager(new XxxLayout());
 
         AWT提供了F1owLayout, BorderLayout, GridLayout, GridBigLayout, CardLayout五个常用的布局管理器,Swing还提供了一个BoxLayout布局管理器。下面将详细介绍这几个布局管理器。(摘自[疯狂java讲义])