面向 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    责编:豆豆技术应用

正在加载评论...