面向 Java 开发人员的 Ajax: 探索 Google Web Toolkit
http://tech.ddvip.com 2006年11月20日 社区交流
本文详细介绍面向 Java 开发人员的 Ajax: 探索 Google Web Toolkit
图 3. 应用了这些样式之后的输入面板

添加客户端行为
现在应用程序的基本布局和样式已经就绪,我将开始实现一些客户端行为。可以用熟悉的侦听器模式在 GWT 中执行事件处理。GWT 为鼠标事件、键盘事件、修改事件等提供了Listener接口,还提供了几个适配器和助手类,以获得更多方便。
一般情况下使用 Swing 程序员熟悉的内部类形式来添加事件侦听器。但是,所有 GWTListener方法的第一个参数都是事件的发送者,通常是用户刚刚与之交互的小部件。这意味着可以把同一个Listener实例附加到所需的多个小部件上;可以用 sender 参数确定是哪个小部件触发了事件。
清单 4 显示了 Weather Reporter 应用程序中实现的两个事件侦听器。click 句柄被添加到了 Submit 按钮上,keyhandler 被添加到了TextBox上。不管是单击 Submit 按钮,还是在TextBox拥有焦点时按下回车键,都会导致相关的句柄调用私有的validateAndSubmit()方法。在添加到清单 4 的代码中之后,txBox和ucRadio已经成为Weather类的实例变量,所以可以从验证方法访问它们。
清单 4. 添加客户端行为
// Create Submit button, with click listener inner class attached
Button btn = new Button("Submit", new ClickListener() {
public void onClick(Widget sender) {
validateAndSubmit();
}
});
// For usability, also submit data when the user hits Enter
// when the textbox has focus
txBox.addKeyboardListener(new KeyboardListenerAdapter(){
public void onKeyPress(Widget sender, char keyCode, int modifiers) {
// Check for Enter key
if ((keyCode == 13) && (modifiers == 0)) {
validateAndSubmit();
}
}
}); 清单 5 显示了validateAndSubmit()方法的实现。该实现非常简单,由封装验证逻辑的ZipCodeValidator类完成。如果用户没有输入正确的 5 位数字的 ZIP 代码,那么validateAndSubmit()将在警告框中显示错误消息,如果这种情况出现在 GWT 中,则会调用Window.alert()。如果 ZIP 代码正确,那么它将与用户对摄氏或华氏温度单位的选择一起被传递给fetchWeatherHtml()方法,这个方法稍后再介绍。
来源:ibm 作者:Philip McCarthy 责编:豆豆技术应用