XWT - 事件处理

 
   

在我的上一篇文章中介绍了XWT的Hello World入门例子,接下来我们将了解一下XWT的事件处理。
先写个简单例子
<Shell xmlns="http://www.eclipse.org/xwt/presentation"
xmlns:x="http://www.eclipse.org/xwt"
="ui.EventHandler">
<Shell.layout>
<GridLayout/>
</Shell.layout>
<Button text="Click Me!" SelectionEvent="clickButton">
</Button>
</Shell>

 
通过扩展属性x:Class定义了处理事件的Java类,但点击按钮时,触发SelectionEvent事件,这时会调用EventHandler的clickButton方法:
package ui;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Button;

public class EventHandler {
protected void clickButton(Event event) {
Button button = (Button )event.widget;
button.setText("Hello, world!");
}
}

    程序运行的结果就是按钮的文字变成了“Hello, world!”。

    这个例子展示了XWT可以链接到Java CLR(Common Language Runtime)的实例,使用x:Class将UI和Java类联系到了一起  。

image_thumb

 
CLR with x:ClassFactory

   其实你也可以使用c:ClassFactory来连接你的CLR Factory。

<Shell xmlns="http://www.eclipse.org/xwt/presentation"
xmlns:x="http://www.eclipse.org/xwt"
x:ClassFactory="xwt.samples.ui.EventHandlerFactory">
<Shell.layout>
<GridLayout/>
</Shell.layout>
<Button text="Click Me!" SelectionEvent="clickButton">
</Button>
</Shell>

使用x:ClassFactory属性指定了与UI进行连接的是xwt.samples.ui.EventHandlerFactory.java这个类。

package xwt.samples.ui;

import java.beans.EventHandler;
import java.util.Map;

import org.eclipse.e4.xwt.ICLRFactory;

public class EventHandlerFactory implements ICLRFactory {

@Override
public Object createCLR(String args, Map<String, Object> options) {
return new SampleEventHandler();
}
}

其实你也可以在x:ClassFactory指定参数,比如:

x:ClassFactory="xwt.samples.ui.EventHandlerFactory "

运行时,EventHandlerFactory 的createCLR方法的args参数将会变成“bean=myCLR”了,你可以通过这个控制程序的跳转。

转载于:https://www.cnblogs.com/vwpolo/archive/2011/07/14/2106388.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值