使用布局管理器 呈现生动的JAVA程序界面

使用布局管理器 呈现生动的JAVA程序界面

ID:38693076

大小:52.00 KB

页数:4页

时间:2019-06-17

使用布局管理器 呈现生动的JAVA程序界面_第1页
使用布局管理器 呈现生动的JAVA程序界面_第2页
使用布局管理器 呈现生动的JAVA程序界面_第3页
使用布局管理器 呈现生动的JAVA程序界面_第4页
资源描述:

《使用布局管理器 呈现生动的JAVA程序界面》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、如果你曾经为文本模式的应用程序设计过用户界面,那么你就会熟悉其中所涉及的问题。你需要获得每个标签、菜单、输入字段以及其他修饰元素,再把它们放到屏幕上显示,还要考虑每个东西的尺寸以及屏幕的尺寸。由于所有这些参数都是提前知道的,所以一些简单的算法就能够很好地完成这项工作。但是,相同的情况却不会发生在图形应用程序上,因为每个元素最佳的尺寸和位置都依赖于多个因素,而这些因素在编辑的时候常常是不可知的,例如屏幕的分辨率、窗口和字体的大小等等。这就不可能手动计算其位置和尺寸了。Java运用了一个原始的解决方案来解决这个问题——布局管理器,它能够让你只使用Java代码(不需要使用可视化工具)就设计出复杂的

2、适合任何屏幕分辨率和尺寸的用户界面。现在让我们来看一下布局管理器,看它们是如何工作的,以及如何创建自定义的布局管理器的,这样你就能够在必要的时候有效地使用那些Java平台自带的布局管理器,或者开发你自己的。我会假设你已经熟悉了AWT和/或Swing。概述布局管理器是一个对象,其唯一的任务就是将组件安放(也就是说,确定其尺寸和位置)进一个容器里(container)。每个容器都有一个java.awt.Container的子类,并提供一个方法——setLayout,用来指定要被使用的布局管理器。在通常情况下,容器已经被指定了一个缺省的布局管理器,而且如果没有正确设置的话还可以通过setLayou

3、t来更改。而其他的东西则要使用一个专用的布局管理器,它们就不能够或者不应该被更改了,例如java.awt.ScrollPane和javax.swing.JRootPane。布局管理器必须要实现java.awt.LayoutManager或者java.awt.LayoutManager2这两个接口。Java平台已经自带了很多布局管理器,所以你需要做的就是将正确的类实例化,再调用容器的setLayout,同时传递最新创建的布局管理器。你甚至能够完全不使用布局管理器(例如将null传递给setLayout),但是在这种情况下,你必须使用java.awt.Component的正确方法(例如,setB

4、ounds、setLocation和setSize)来手动指定每个组件的位置和尺寸。使用布局管理器理解布局管理器是如何工作的最好方法是研究例子。ListingA里是一个非常简单的程序,它使用java.awt.BorderLayout布局管理器(也就是说,框架所缺省的布局管理器)来创建一个java.awt.Frame,并用一些按钮来填充它——每个BorderLayout区域内都有一个,BorderLayout.WEST这个区域除外,因为它由java.awt.Panel面板组件来填充。这个面板也会使用BorderLayout,并用按钮来填充。运行这个程序的结果就是图A里的窗口。这都是java.a

5、wt.Window.pack方法的魔力。当这个包装方法被调用的时候,它就使用其首选的尺寸为窗口提供尺寸,这个首选的尺寸是由getPreferredSize方法返回的。图A一个简单的窗口首选尺寸当getPreferredSize方法被调用用于某个组件的时候,它就会为这个组件返回最佳的尺寸(在按纽的情况下,这个尺寸就是在考虑到字体以及额外的空间和边界的大小之后,按钮标签的大小),但是当它为容器而被调用的时候,布局管理器就被调用,以计算其最佳的尺寸。用于每个组件的布局管理器叫做getPreferredSize,它会使用某种算法(具体是哪种算法要依赖于布局管理器)来计算最终的尺寸。如果一个组件自身就

6、是容器,那么这个进程就被循环使用。其最终的结果是,每个组件都获得了足够的空间以能够正确地显示。一旦窗口的尺寸被给出,布局管理器就会被调用,以安置这些组件。这一次,由于尺寸已经被确定了,所以布局管理器只需要根据组件自己的逻辑和可用空间就可以给组件指定位置和尺寸了。每当容器的尺寸发生改变或者影响其尺寸的某个组件的属性发生更改时,布局管理器也会再次被调用以安置这些组件。如果你重新改变示例程序的窗口尺寸,那么按纽也会相应地被重新安置。如果你点击一个按钮,其字体的尺寸就会增大一倍,这会增加按钮标签的大小,并使得按钮自身也增大,最终这个窗口的布局就会像图B里的窗口一样。图B重新指定窗口和组件的尺寸创建一

7、个自定义的管理器使用Java平台所提供的布局管理器,或者将它们组合起来使用,你就能够真正地实现任何布局。但是,这些所提供的布局管理器在有些情况下仍然不能满足你的要求。如果这种情况发生了,那么解决的方法就是创建你自己的自定义布局管理器。幸运的是,创建一个布局管理器并不困难。如果你的布局管理器需要一些限制条件的话,你所需要做的就是去实现java.awt.LayoutManager或者java.awt.Layout

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。