AsWing教程 自定义感官

AsWing教程 自定义感官


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条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信