小方的Java博客

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            27 隨筆 :: 17 文章 :: 115 評論 :: 0 Trackbacks
          GWT QQ 群號:28310588

          用過gwt的都知道,對一個按鈕button做點擊事件很簡單,但要做鼠標事件,比如over,up,leave就沒辦法了,但extends Button就能做到,以下就是這個例子:我自己寫的

          package?mypack.client;

          import?com.google.gwt.core.client.EntryPoint;
          import?com.google.gwt.user.client.DOM;
          import?com.google.gwt.user.client.Event;
          import?com.google.gwt.user.client.ui.Button;
          import?com.google.gwt.user.client.ui.ClickListener;
          import?com.google.gwt.user.client.ui.ClickListenerCollection;
          import?com.google.gwt.user.client.ui.Label;
          import?com.google.gwt.user.client.ui.LoadListener;
          import?com.google.gwt.user.client.ui.LoadListenerCollection;
          import?com.google.gwt.user.client.ui.MouseListener;
          import?com.google.gwt.user.client.ui.MouseListenerCollection;
          import?com.google.gwt.user.client.ui.RootPanel;
          import?com.google.gwt.user.client.ui.SourcesClickEvents;
          import?com.google.gwt.user.client.ui.SourcesLoadEvents;
          import?com.google.gwt.user.client.ui.SourcesMouseEvents;
          import?com.google.gwt.user.client.ui.Widget;

          /**
          ?*?Entry?point?classes?define?<code>onModuleLoad()</code>.
          ?
          */

          public?class?MouseTest implements?EntryPoint?{

          ????
          /**
          ?????*?This?is?the?entry?point?method.
          ?????
          */

          ????
          public?void?onModuleLoad()?{
          ????????
          final?MyButton?button?=?new?MyButton("Super?Button");
          ????????
          final?Label?label?=?new?Label();

          ????????button.addMouseListener(
          new?MouseListener()?{

          ????????????
          public?void?onMouseDown(Widget?sender,?int?x,?int?y)?{
          ????????????????
          //?TODO?Auto-generated?method?stub

          ????????????}


          ????????????
          public?void?onMouseEnter(Widget?sender)?{
          ????????????????
          //?TODO?Auto-generated?method?stub

          ????????????}


          ????????????
          public?void?onMouseLeave(Widget?sender)?{
          ????????????????
          //?TODO?Auto-generated?method?stub

          ????????????}


          ????????????
          public?void?onMouseMove(Widget?sender,?int?x,?int?y)?{
          ????????????????label.setText(
          "Hello?World!");

          ????????????}


          ????????????
          public?void?onMouseUp(Widget?sender,?int?x,?int?y)?{

          ????????????}

          ????????}
          );

          ????????
          //?Assume?that?the?host?HTML?has?elements?defined?whose
          ????????
          //?IDs?are?"slot1",?"slot2".?In?a?real?app,?you?probably?would?not?want
          ????????
          //?to?hard-code?IDs.?Instead,?you?could,?for?example,?search?for?all
          ????????
          //?elements?with?a?particular?CSS?class?and?replace?them?with?widgets.
          ????????
          //
          ????????RootPanel.get("slot1").add(button);
          ????????RootPanel.get(
          "slot2").add(label);
          ????}

          }


          class?MyButton?extends?Button?implements?SourcesClickEvents,
          ????????SourcesMouseEvents,?SourcesLoadEvents?
          {
          ????
          public?MyButton(String?text){
          ????????
          super(text);
          ????????sinkEvents(Event.ONCLICK?
          |?Event.MOUSEEVENTS?|?Event.ONLOAD?|?Event.ONERROR);
          ????}

          ????
          ????
          private?ClickListenerCollection?clickListeners;

          ????
          private?LoadListenerCollection?loadListeners;

          ????
          private?MouseListenerCollection?mouseListeners;

          ????
          public?void?addClickListener(ClickListener?listener)?{
          ????????
          if?(clickListeners?==?null)
          ????????????clickListeners?
          =?new?ClickListenerCollection();
          ????????clickListeners.add(listener);
          ????}


          ????
          public?void?addLoadListener(LoadListener?listener)?{
          ????????
          if?(loadListeners?==?null)
          ????????????loadListeners?
          =?new?LoadListenerCollection();
          ????????loadListeners.add(listener);
          ????}


          ????
          public?void?addMouseListener(MouseListener?listener)?{
          ????????
          if?(mouseListeners?==?null)
          ????????????mouseListeners?
          =?new?MouseListenerCollection();
          ????????mouseListeners.add(listener);
          ????}


          ????
          public?void?onBrowserEvent(Event?event)?{
          ????????
          switch?(DOM.eventGetType(event))?{
          ????????
          case?Event.ONCLICK:?{
          ????????????
          if?(clickListeners?!=?null)
          ????????????????clickListeners.fireClick(
          this);
          ????????????
          break;
          ????????}

          ????????
          case?Event.ONMOUSEDOWN:
          ????????
          case?Event.ONMOUSEUP:
          ????????
          case?Event.ONMOUSEMOVE:
          ????????
          case?Event.ONMOUSEOVER:
          ????????
          case?Event.ONMOUSEOUT:?{
          ????????????
          if?(mouseListeners?!=?null)
          ????????????????mouseListeners.fireMouseEvent(
          this,?event);
          ????????????
          break;
          ????????}

          ????????
          case?Event.ONLOAD:?{
          ????????????
          if?(loadListeners?!=?null)
          ????????????????loadListeners.fireLoad(
          this);
          ????????????
          break;
          ????????}

          ????????
          case?Event.ONERROR:?{
          ????????????
          if?(loadListeners?!=?null)
          ????????????????loadListeners.fireError(
          this);
          ????????????
          break;
          ????????}

          ????????}

          ????}


          ????
          public?void?removeClickListener(ClickListener?listener)?{
          ????????
          if?(clickListeners?!=?null)
          ????????????clickListeners.remove(listener);
          ????}


          ????
          public?void?removeLoadListener(LoadListener?listener)?{
          ????????
          if?(loadListeners?!=?null)
          ????????????loadListeners.remove(listener);
          ????}


          ????
          public?void?removeMouseListener(MouseListener?listener)?{
          ????????
          if?(mouseListeners?!=?null)
          ????????????mouseListeners.remove(listener);
          ????}

          }


          posted on 2006-08-02 10:15 方佳瑋 閱讀(1702) 評論(2)  編輯  收藏 所屬分類: AJAX

          評論

          # re: [ajax]GWT做的鼠標over事件 2006-08-03 17:53 peace
          不錯啊,小伙子!如果再加上點注釋就好了  回復  更多評論
            

          # re: [ajax]GWT做的鼠標over事件 2006-09-25 10:23 麻辣
          嘿嘿,不錯..  回復  更多評論
            

          主站蜘蛛池模板: 平乡县| 锡林浩特市| 平凉市| 亳州市| 广河县| 枣庄市| 梧州市| 绿春县| 八宿县| 安化县| 哈巴河县| 东丽区| 富民县| 年辖:市辖区| 巴中市| 郎溪县| 清涧县| 杨浦区| 壤塘县| 灵寿县| 获嘉县| 平乐县| 正镶白旗| 桑植县| 金平| 克拉玛依市| 普宁市| 常宁市| 嘉峪关市| 霍州市| 东丰县| 绥棱县| 喀喇沁旗| 台州市| 南陵县| 探索| 富民县| 乐山市| 泌阳县| 敖汉旗| 宁南县|