2009-11-12 14 views
5

Bir GWT uygulamasında, tüm tarayıcı sayfasının X, Y fare koordinatlarını ve tıklamaları yakalamayı ve görüntülemeyi izlemek istiyorum. Sayfada paneller, düğmeler, vb. GWT widget'ları var. Herhangi bir tavsiye memnuniyetle karşılanacaktır.GWT ile bir sayfada fare hareketlerini izleme

Teşekkürler. http://google-web-toolkit.googlecode.com/svn/javadoc/1.6/com/google/gwt/user/client/Event.html#addNativePreviewHandler(com.google.gwt.user.client.Event.NativePreviewHandler)

Bir NativePreviewHandler yüklemek ve ayrıca RootPanel veya tarayıcı penceresini kaplayan başka widget'ı kayıtlı bir MouseMouseHandler olduğundan emin olun emin olun: Daniel

cevap

6

Birkaç kez bunları çeşitli sebeplerden dolayı kullanmak zorunda kaldım. Bu, GWT yerel önizleme işleyici öğelerinin nasıl kullanılacağıyla ilgili çok temel bir örnektir.

Ancak dikkat etmeniz gereken bir uyarı var: onPreviewNativeEvent() yöntemi genellikle yürütülür. Burada herhangi bir hesaplama açısından pahalı mantığı koyarsanız, özellikle IE'de ve/veya eski bilgisayarlarda her şeyi yavaşlatır. İhtiyaçlarınıza bağlı olarak, bir sorun olmayabilir, ama söz değer.

Event.addNativePreviewHandler(new NativePreviewHandler() { 
    public void onPreviewNativeEvent(final NativePreviewEvent event) { 
    final int eventType = event.getTypeInt(); 
    switch (eventType) { 
     case Event.ONMOUSEMOVE: 
     //mouse tracking logic? 
     break; 
     case Event.ONCLICK: 
     final int eventX = event.getNativeEvent().getClientX(); 
     final int eventY = event.getNativeEvent().getClientY(); 
     Window.alert("Clicked @ " + eventX + "," + eventY); 
     break; 
     default: 
     // not interested in other events 
    } 
    } 
}); 
2

bir göz atın.