2024年5月4日发(作者:)
AsWing 教程 自定义观感(LookAndFeel)
转自:/i/study/2010/0913/
在前面的章节中,我们介绍过很多方法来装饰组件,包括设置前景背景色(A
SColor),设置字体(ASFont),设置边框(Border),使用图标(Icon),使
用前景背景装饰器等(GroundDecorator)。但这些都仅仅是装饰而已,有时候,
可能你想要完全改变一个组件的外观,甚至改变交互感,AsWing框架允许你这
样做,并且提供了一套机制让你定制这些内容。这一节,我们将介绍如何改变一
个组件乃至一整套组件的观感。
几乎前面所有章节,我们都只是介绍组件的使用,而在定制观感之前,我们
不得不先了解一下AsWing标准组件的内在结构,如图65:
(图65)
大多数标准组件,都具有图中的结构,组件类本身充当控制器(Controller,
图中的Component),它使用一个数据模型(Model,图中的Model)存储数据,
然后用视图(View,图中的ComponentUI)呈现其外观。AsWing有一个类存储着
所有标准组件的视图集以及所有外观属性,这个类就是LookAndFeel,UIManage
r类管理着LookAndFeel,当一个组件创建时,就会通过UIManager从当前的Lo
okAndFeel处获取对应于自己的视图对象。默认的组件外观管理类是BasicLook
AndFeel。
注意:这里讲的标准组件,是指采用了ComponentUI来呈现外观的类,大多
数J字母开头的组件都是标准组件(JRootPane,JPopup,JWindow,JAttachPa
ne,JLoadPane等由于其自身不需要外观,所以并未使用ComponentUI,另外or
包内的组件也未使用ComponentUI)。
外观属性配置
要了解LookAndFeel,必须观察它的源代码,本质上它只是一个静态的属性
集合,打开BasicLookAndFeel类源代码,你可以看到众多的Key-Value键值配
置,比如:
1. "window", 0xCCCCCC,
2.
3. "windowBorder", 0x000000,
4.
5. "windowText", 0x000000,
6.
7. "menu", 0xEEEEEE,
8.
9. "menuText", 0x000000,
它配置了窗口(指JFrame,JPanel等窗口面板性质的组件)的默认背景色,
边框色,前景文字色,菜单背景色,菜单文字色。这几个属性是为后面具体组件
的属性做基础的,比如:
1. "ound", ("window"),
2.
3. "ound", ("windowText"),
4.
5. "", false,
6.
7. "ble", false,
它代表JPanel的背景色会使用前面配置好的"window"键的值(即窗口背景
色),""直接配置了false,则代表默认情况下JPanel是透明的,
等等。
假设我们要制作一个自己的LookAndFeel,采用不同的属性配置,简单的继
承自BasicLookAndFeel,然后覆盖一些属性键的值即可。我们来创建一个简单
的LookAndFeel只改变普通按钮的前景色(文字颜色):
1. package{
2.
3. import ults;
4.
5. import rUIResource;
6.
7. import ookAndFeel;
8.
9. public class OurLookAndFeel1 extends BasicLookAndFeel{
10.
11. public function OurLookAndFeel1(){
12.
发布者:admin,转转请注明出处:http://www.yc00.com/news/1714817196a2521720.html
评论列表(0条)