您的位置:首页 > 产品设计 > UI/UE

#笔记#圣思园 JavaSE 第76讲——GUI,AWT组件,布局管理器

2015-06-17 10:50 344 查看

1.GUI——Graphical User Interface——图形用户界面

根据作用分类,GUI组件可分为 基本组件 和 容器

组件:又称构件,如按钮、文本框等

容器:特殊的组件,可以容纳其他组件,如窗口、对话框等。

            所有容器类都是java.awt.Container的直接或间接子类

2.AWT——Abstract Window Toolkit——抽象窗口工具集。

是第一代java GUI组件,是重量级的(GUI元素基于底层的操作系统,所以不同操作系统绘制出的效果不同)

  Swing——不依赖于底层细节,轻量级组件。

AWT提供基本的GUI组件,确保显示在屏幕上的每个GUI组件都是抽象类组件的子类

Container是Component(组件类)的子类,Container包括两个主要子类:Panel(面板)和window(窗口)

基本的AWT库处理用户界面元素的方法:把这些元素的创建和行为委托给每个目标平台上(Windows,Unix,Mac等)的本地GUI工具进行处理

Window是Java.awt.Window的对象,是显示屏上独立的本机窗口,独立于其他容器

Window有两种形式:Frame和Dialog。它们是Window的子类。

                                       Frame是一个带有标题和缩放角的窗口

                                       Dialog没有菜单条,能移动,不能缩放

Panel是Java.awt.Panel的对象,Panel包含在另一个容器中,或是在Web浏览器的窗口中。

Panel确定一个四边形,其他组件可以放入其中。Panel必须放在Window或Window的子类中,以便显示

3.Frames

是Window的子类,有标题和缩放角。

从容器继承,并以add方式添加组件

能以字符串规定的标题来创建不可见框架对象

能将BorderLayout当做缺省布局管理器

用setLayout方式来改变缺省布局管理器

Frame类继承层次

java.lang.Object

     java.awt.Component

           java.awt.Container

                java.awt.Window

                      java.awt.Frame

示例程序:MyFrame.java

.在框架显示在屏幕上之前,必须做成可见的(调用setVisible(true)),而且大小是确定的(调用setSize()或pack())



4.Panels

为组件提供空间,允许子面板拥有自己的布局管理器

以add方法添加组件。用Container类中的add()方法可以做到使面板对象可见,把面板对象添加到窗口或框架对象上

Panel类继承层次

java.lang.Object

     java.awt.Component

           java.awt.Container

                java.awt.panel

示例程序:FrameWithPanel.java



5.布局管理器

容器里组件的位置和大小,由布局管理器决定。负责决定布局方针以及其容器的每一个子组件的大小

容器对布局管理器的特定实例保持一个引用,当容器需要定位一个组件时,它将调用布局管理器来完成。当决定一个组件大小时,也如此

AWT提供了五种布局管理器:

1.BorderLayout

2.FlowLayout

3.GridLayout

4.CardLayout

5.GridBagLayout

每个Container(如Frame或Panel)都有一个与它相关的缺省布局管理器,它可以通过调用setLayout()来改变

通过设置布局管理器,控制组件的大小和位置,调用setLayout(null)

设置null的布局管理器后,必须对所有的组件调用setLocation(),setSize()或色堂Bounds(),将它们定位在容器中

继承Window的Frame和Dialog使用的布局管理器是BorderLayout

继承Panel的Applet使用的布局管理器是FlowLayout

示例程序:ExGui.java



运行结果:



如果注释掉frame.setLayout(new FlowLayout()),此时Frame使用自己的BoderLayout作为布局管理器。运行结果如下:


第一个按钮消失了——被第二个按钮覆盖了

FlowLayout——“流”式的布局管理器

BoderLayout——东西南北中的方式布局。窗口缩放时,按钮相应位置不变,但大小改变。每个区域只能加入一个组件

示例程序:ExGui2.java



运行结果:



示例程序:MyFlow.java



运行结果:



6.Grid布局管理器

示例程序:GridEx.java



运行结果:



7.综合使用布局管理器示例程序:ExGui3.java



运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: