黑马程序员 — GUI

------------android培训java培训、期待与您交流! ----------



GUI


什么是GUI:

Graphical User Interface即人机交互图形化用户设计界面经常读做“goo-ee”,准确来说GUI就是屏幕产品的视觉体验和互动操作部分。


组件:

什么是组件:

组件Component是图形用户界面的基本组成元素,凡是能够以图形化方式显示在屏幕上并能够与用户进行交互的对象都是组件



容器:

什么是容器:

组件通常不能独立显示出来,必须放在一定的容器中才可以显示出来,有一类特殊的组件用来专门包含其他组件的,这类组件叫容器

java.awt.Container是所有容器的父类,继承自java.awt.Component


说明:

容器具有组件所有性质,但组件却不一定是容器

Component的子类Container

Container的子类Window和Panel (默认布局管理器FlowLayout)

Window的子类Frame(默认布局管理器BorderLayout)和Dialog



布局管理器:


什么是布局管理器:

容器对其所包含的组件的排列方式,包括组件位置大小的设定,被称为容器的布局(Layout)为了使图形用户界面具有良好的平台无关性,java提供了布局管理器来管理容器的布局,不建议直接设置组件在容器中的位置和大小

每个容器都有一个默认的布局管理器,当容器需要对某个组件进行定位或判断其大小时,就会自动调用其对应的布局管理器


awt中常见的布局管理器:

FlowLayout布局管理器:

FlowLayout是Panel类的默认布局管理器,他对组件逐行定位,行内从左到右,一行排满后换行,不改变组件的大小,按组件原有尺寸显示组件,可设置不同的组件间距,行距以及对齐方式,默认对齐方式是居中对齐


:

new FlowLayout()缺省居中对齐,水平垂直间距缺省为5,

new FlowLayout(FlowLayout.LEFT)左对齐,水平垂直间距缺省为5,

new FlowLayout(FlowLayout.RIGHT, 20, 40)右对齐,组件之间水平间距20个像素,垂直间距40个像素


BorderLayout布局管理器:

orderLayout是Frame类的默认布局管理器,他将整个容器的布局划分成东east西west南south北north中center五个区域,组件只能被添加到指定的区域,如果不指定区域默认加到center区,每个区域只能加入一个组件,加入多个会被后来的覆盖


说明:

BorderLayout型布局容器尺寸缩放原则

南北两个区域在水平上缩放

东西两个区域在垂直方向上缩放

中部可以在两个方向上缩放

GridLayout布局管理器

GridLayout型布局管理器将空间划分成规则的矩形网格,每个单元格区域大小相等,组件被添加到每个单元格,先左到右填满一行后换行

GridLayout 构造方法中指定分割的行数和列数,以行数为准





类中的常用方法:


定义:

panel是容纳其他组件的组件,是容器,不能单独存在,必须被加到其他容器中


panel类的常用方法:

setBounds(int x, int y, int width, int height)

setSize(int width, int height)

setLocation(int x, int y)

setBackground(Color c)

setLayout(LayoutManager mgr)

panel的构造方法

panel()使用默认的FlowLayout类布局管理器初始化

panel(LayoutManager layout)使用指定的布局管理器初始化


Frame类的常用方法:

public void setBounds(int x, int y, int width, int height)设置窗体位置和大小

public void setSize(int width, int height)设置窗体大小

public void setVisible(boolean flag)设置窗体是否可见

public void setBackground(Color c)设置窗体的颜色




总结:

Frame是个顶级窗口,默认缺省布局管理器为BorderLayout

Panel无法单独显示,必须添加到某个容器中,缺省布局管理器是FlowLayout,当把Panel作为一个组件添加到某个容器,Panel仍有自己的布局管理器

使用布局管理器时,布局管理器负责各组件的大小和位置,用户无法在这种情况下设置组件的大小和位置,java提供的setLocation(),setSize()setBounds()等都会被

布局管理器覆盖,如果需要手动设置组件大小和位置,应取消容器布局管理器,setLayout(null)






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值