javaGUI学习31:AWT-轻量级构件

  • AWT构件是重量构件,即它们都拥有一个本地同位体,而且在其本身的不透明窗口中描绘,因此它们总是显示为矩形。
  • 轻量构件由于是在其容器的Graphics中显示,因此不需要本地窗口。因此,与重量构件相比,轻量构件需要更少的资源,而且其背景是透明的。其中,透明背景意味着即使轻量构件的边框(由Component. getBounds ()方法获取)为矩形,轻量构件也可以显示为非矩形。
  • 另外,在轻量构件容器的祖先中,必须有一个重量容器,否则无法在窗口内绘制轻量构件。在实际应用过程中,由于构件总是停留在Applet中或者Frame中,而 Applet与Frame都是重量构件,因此这个要求并不是一个问题。
1、引入轻量构件

轻量自定义构件的实现只需要扩展java.awt . Component或java.awt .Container类即可。

2、轻量构件与重量构件
  • 轻量构件名字的由来是因为它不需要利用自己的本地窗口来描述自己,而只需要在其容器窗口中完成绘制操作。由于AWT代码是基于重量构件的,它们都拥有其自身的窗口及相应的自身坐标系,因此轻量构件不拥有其自身描绘窗口这一事实会给AWT代码带来严重的影响。如果需要处理轻量构件,则AWT代码必须首先观察轻量构件,然后再将其翻译到其父容器构件的坐标系中。
  • 重量构件与轻量构件的另一-个区别在于:轻量构件没有同位体,而重量构件则拥有同位体。
  • 重量构件是基于同位体的构件,它们在其自身本地窗口中完成绘制,而轻量构件则没有同位体,在其容器窗口中完成绘制。
3、轻量构件与zorder

轻量构件的zorder是按照与重量构件相同的方式决定的。zorder是由轻量构件添加到容器中的顺序所决定的。如果一个容器中添加了多个轻量构件,则首先添加到容器中的构件将显示在所有其他轻量构件的前面。

4、轻量构件及其Graphics

调用轻量构件的 getCraphics ()方法,将返回轻量构件所属重量容器的Graphics 的副本。由于轻量构件是在其所属重量容器窗口内显示的,因此它们没有属于自己的Graphics。

5、轻量构件与首选尺寸

重量构件的首选尺寸由构件同位体计算产生,而重量容器的首选尺寸则由容器的布局管理器计算产生。另一方面,在默认设置下,轻量构件的首选尺寸值为1×1像素大小。因此,轻量构件应该覆盖getPreferedSize ()方法,以确保根据它的首选设置尺寸。当然,由于重量构件与轻量构件的形状都是由安排其布局的布局管理器确定的,因此覆盖PreferedSize ()方法也无法确保轻量构件根据 PreferedSize ()方法的返回值调整大小。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值