在 Apache Pivot WTKX源文件中的某些组件会使用wtkx:id 对组件进行命名,我们称为“命名对象(named object)”。
在编写Java代码时,我们经常要引用到WTKX中的命名对象,比如为某个控件添加事件监听器,修改组件的属性等。
有两种方式可以在Java代码中引用到WTKX中命名对象。
1.直接通过 WTKXSerializer#get方法,给get方法传递在WTKX文件中的命名名称,就可以获得相应的组件。
Label lab = (Label)wtkxSerializer.get("label“);
2.使用 @wtkx注解配合 WTKX绑定。
首先要定义一个Java的成员变量,并使用 @wtkx注解,如
@wtkx private Label label;
在创建WTKXSerializer对象并加载wtkx源文件后调用WTKXSerializer#bind方法。bind方法会根据wtkx文件中的命名对象的名称自动和@wtkx注解的成员变量进行绑定(可能是通过wtkxSerializer.get实现)。
@wtkx注解的变量也可以是public的成员。变量名称必须和wtkx中的命名对象的名称和类型一致。
例如下面的例子来自 WTKX Primer#WTKX binding的一个例子
1 | <Window xmlns="org.apache.pivot.wtk" |
2 | xmlns:wtkx="http://pivot.apache.org/wtkx"> |
3 | <content> |
4 | <Label wtkx:id="label" text="Hello, World!"/> |
5 | </content> |
6 | <Window> |
Java声明代码:
@WTKX private Label label;
1. 使用get获得命名对象的引用,比较自由,但是每次获取时都需要名声一个局部变量并调用get函数。
2.使用@wtxk绑定时,使用比较方便,但是对于嵌套WTKX文件的命令对象,比如 content.label 可以使用 @WTKX("content.label)

本文介绍Apache Pivot WTKX中两种引用命名对象的方法:直接使用WTKXSerializer#get方法和使用@wtkx注解进行绑定。前者灵活但每次调用都需要创建变量,后者使用更便捷,适合多次使用的命名对象。
2849

被折叠的 条评论
为什么被折叠?



