java界面布局-网页界面布局设计
课程目标:
理解GUI平台无关性理解AWT如何实现平台无关性列出UI的组件及用法掌握各种布局管理器熟悉在Java中使用不同的事件处理方法
移植应用程序面临的最大的障碍一直是”图形用户界面(GUI)“。在应用程序中设计GUI要专门指定计算机的类型,操作系统和使用的显示器屏。
因此,为特定平台编写的应用程序如果不将用于GUI的代码更改为另一个平台可接受的代码则不能移植到此平台。
在Java的解决方案就是使用应程序和平台之间的中间体,来避免由于GUI代码而造成的应用程序与平台不匹配的问题。应用程序始终使用同一组函数来创建和处理GUI,中间体将截取GUI函数调用,并转换它们,以便平台能够理解它们。这样应用程序中的GUI代码将保持对应用程序最终运行平台的无关性。
AWT包
Java使用上述模式实现平台无关性。Java抽象窗口操作工具包(AWT)为创建具有平台无关性的GUI提供了类和函数。
AWT提供了下列内容:
布局管理器
通过使用相对定位系统,Java实现了具有平台无关性的组件定位。这通过划分显示区并在每个区内放置组件得以实现
Java提供了五种划分显示区的方式。每一种方式都通过”布局管理器“来进行处理。
这五种”布局管理器“如下:
在实际开发中,一般都用BorderLayout配合GridBagLayout来实现复杂排板布局。
FLowLayout
流式布局,第一个组件放在顶部中间,后续的组件放在它的旁边,当组件排满第一行时,它将移动到下一行。
在FlowLayout中,可以指定组件水平对准。有三个可选项:
GirdLayout
在GirdLayout中,显示区划分由行和列组成的表格。组件按行一个接一个地放在单元格中
GridLayout对组件位置的控制能力比FlowLayout要好。
正像FLowLayout那样,它也可以调整组件之间的间距。
BorderLayout
BorderLayout使用”东,西,南,北“这样的地理方向和居中来指定组件的位置。组件将按照指定要求沿着边框排列,在中间剩余的空间指定给以中心为其位置的组件
与FlowLayout和GridLayout一样,可以指定组件之间的垂直和水平间距。
CardLayout
到目前为止,在所有学习的布局管理器中,所有的组件都将在屏幕上同时显示,在cardLayout中,组件将排列到各个卡片上,而每次只能查看一个卡片。因此,并不是所有的组件都能够同时可视。
在CardLayout中,组件放在不同的面板中,所有的面板都与CardLayout关联,然后可以依次查看每个面板。
GridBagLayout
这是其中功能最强大的布局管理器,GridBagLayout在感官上类似于将组件按表格排列的GridLayout。
GridBagLayout为程序设计提供了对下列内容的控制方法:
对程序来说,GridBagLayout是所有布局中最复杂。然而也是最灵活的布局方案。
嵌套面板
假设这样一个UI,其一个部分发生变化java界面布局,而另一个部分却保持不变。
为了实现这种效果,必须分隔成两个区。通过使用两个面板即可实现。
Panel是AWT的面板类型。通过面板的组合可以构造出复杂的UI样式。
在这个例子中,下面的按钮是一个Panel,上面的用户名和密码又是一个panel。每个panel的布局又是都是GridLayout。
GUI组件
AWT为我们提供了能够创建和处理UI组件的预定义类和功能。如下所示:
下一节课将来详细讲述各组件的用法
GUI容器
我们来看一个Windows程序,通过在窗口中放置各种UI组件(按钮,文本,标签)来构建该应用程序的用户界面。因此在一个windows应用中,窗口将作为UI的基础,由此,窗口也称为容器。这让我想到了哈里波特里面的魂器-_-!
在Java里面,容器是能够保留其它组件的AWT组件。主要有二种
面板就好比是一个空白的板面,上面可以放置各种组件,也可以嵌套面板。面板不能直接运行,显示,必须放置到一个窗口中才能运行,这需要注意。
窗口,又叫窗体,是可以直接单独显示的组件,一般窗口里面放置各种面板。
创建用户界面的步骤
先确定主容器,就是说是选择用Frame窗体来显示还是用Dialog对话框窗体来显示。确定窗口的整体布局确定每个组件的位置,边框间隔等编写UI事件处理。
关于事件处理,我们将在下一节详细讲述。
课程总结:
了解Java Awt工具包,有个Java为处理跨平台的设计思想。了解5种布局管理器的特性,及使用场景了解组件及容器。
课程作业
现在有一个学生登记表,需要你用JavaGUI来开发。
你该如何设计,用什么布局。
作业示例图
【原创教程】欢迎关注,每天2小时,只要你跟着学,就能轻松掌握编程技术,我是熊猫java界面布局,明天见。
如果在学习过程中遇到不懂的需要在线交流的问题可以私信我,免费辅导。
下期课程预告:
GUI编程利器-WB插件,布局,组件详解,事件处理机制