GWT 中的本机 Javascript 方法

2024-03-20

我的 GWT Java 类之一中有一个本机 Javascript 方法,但我在从本机 Javascript 代码调用我的 Java 方法时遇到问题。我试着跟随this http://code.google.com/webtoolkit/doc/1.6/DevGuideCodingBasics.html#DevGuideJavaScriptNativeInterface尽我所能,但我无法让它发挥作用。我编译它并在 Firefox 中运行它,错误控制台显示“错误:this.lc 不是一个函数”。我尝试将所有方法更改为public,但这似乎没有什么区别。我究竟做错了什么?

package com.proprintsgear.design_lab.client;
...
public class ValueBox extends HorizontalPanel {
...
private void fireChange() {
    ...
}

private void increaseValue() {
    ...
}

private native void addNativeMouseWheelListener(String id) /*-{
    function mouseOverHandler(e) {
        $wnd.addEventListener("DOMMouseScroll", scrollWheelMove, false);
    }

    function mouseOutHandler(e) {
        $wnd.removeEventListener("DOMMouseScroll", scrollWheelMove, false);
    }

    function scrollWheelMove(e) {
        if ($wnd.event || $wnd.Event) {
            if (!e) e = $wnd.event;
            if (e.wheelDelta <= 0 || e.detail > 0 ) {
                $wnd.alert("DOWN");
            } else {
                [email protected] /cdn-cgi/l/email-protection_lab.client.ValueBox::increaseValue()();
            }
            [email protected] /cdn-cgi/l/email-protection_lab.client.ValueBox::fireChange()();
        }
    }

    var box=$doc.getElementById(id);
    box.addEventListener("mouseout",mouseOutHandler,false);
    box.addEventListener("mouseover",mouseOverHandler,false);
}-*/;

在我过去完成的所有代码中,我从未使用“this”来标识我的类,我已经将类传入了。

例如:改变这个:

private native void addNativeMouseWheelListener(String id) /*-{
    function mouseOverHandler(e) {
        $wnd.addEventListener("DOMMouseScroll", scrollWheelMove, false);
    }

    function mouseOutHandler(e) {
        $wnd.removeEventListener("DOMMouseScroll", scrollWheelMove, false);
    }

    function scrollWheelMove(e) {
        if ($wnd.event || $wnd.Event) {
                if (!e) e = $wnd.event;
                if (e.wheelDelta <= 0 || e.detail > 0 ) {
                        $wnd.alert("DOWN");
                } else {
                        [email protected] /cdn-cgi/l/email-protection_lab.client.ValueBox::increaseValue()();
                }
                [email protected] /cdn-cgi/l/email-protection_lab.client.ValueBox::fireChange()();
        }
    }

    var box=$doc.getElementById(id);
    box.addEventListener("mouseout",mouseOutHandler,false);
    box.addEventListener("mouseover",mouseOverHandler,false);
}-*/;

To this:

private native void addNativeMouseWheelListener(ValueBox instance, String id) /*-{
    function mouseOverHandler(e) {
        $wnd.addEventListener("DOMMouseScroll", scrollWheelMove, false);
    }

    function mouseOutHandler(e) {
        $wnd.removeEventListener("DOMMouseScroll", scrollWheelMove, false);
    }

    function scrollWheelMove(e) {
        if ($wnd.event || $wnd.Event) {
                if (!e) e = $wnd.event;
                if (e.wheelDelta <= 0 || e.detail > 0 ) {
                        $wnd.alert("DOWN");
                } else {
                        [email protected] /cdn-cgi/l/email-protection_lab.client.ValueBox::increaseValue()();
                }
                [email protected] /cdn-cgi/l/email-protection_lab.client.ValueBox::fireChange()();
        }
    }

    var box=$doc.getElementById(id);
    box.addEventListener("mouseout",mouseOutHandler,false);
    box.addEventListener("mouseover",mouseOverHandler,false);
}-*/;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GWT 中的本机 Javascript 方法 的相关文章

  • 使用 javascript onClick 播放 mp3 文件

    我正在播放 mp3 文件 只是 javascript onClick 下面是我的代码 Music File 1
  • 如何设置按钮的大小?

    我将按钮放在带有 GridLayout 的 JPane 中 然后我用 BoxLayout Y AXIS 将 JPanel 放入另一个 JPanel 中 我希望 GridLayout 中的按钮是方形的 我使用 tmp setSize 30 3
  • 方法链接的优点和缺点以及用对象本身替换所有 void 返回参数的可能性

    我最感兴趣的是Java 但我认为这是一个普遍的问题 最近我一直在使用 Arquillian 框架 ShrinkWrap 使用了大量的方法链 方法链的其他示例是以下方法StringBuilder StringBuffer 使用这种方法有明显的
  • Spring - 捕获bean创建异常

    我想在我的代码中捕获 bean 实例化异常 我有什么选择 一种方法是使用基于 Java 的容器配置 Configuration public class AppConfig Bean public SomeBean someBean try
  • 在JPA、关系型数据库等中,什么是Tuple? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在研究 Hibernate 和 JPA 并且一直在寻找这个术语 有人可以用实用和说教的方式向我解释一下这个术语是什么 以及它与 J
  • TinyMCE 选择文本并使用 javascript 激活链接对话

    我正在尝试编写一个自动化 使用黄瓜 水豚 硒 测试 它将在tinymce框中选择一些文本 单击链接按钮 然后打开链接选择页面 但链接按钮仅在选择某些文本时才变为活动状态 所以第一轮 tinyMCE activeEditor selectio
  • java.lang.NoSuchFieldError:APPLICATION_CONTEXT_ID_PREFIX

    我在运行项目时收到此错误 最终结果为 404 该项目是在Spring框架上进行的 我读了很多帖子 发现要么是混合了罐子 要么是多余的罐子 接下来我尝试整理我的罐子 以下列表是我的构建路径中的内容 antlr 2 7 6 jar asm ja
  • vue中有自动更新这段代码的东西吗?

    我在导航器中找到了这个按钮 当用户登录时会显示该按钮 而当用户注销时该按钮就会消失 但现在我需要在按钮删除 出现之前刷新页面 这是我的代码 Button div div class div div
  • 是否可以模拟 isTrusted=true

    我希望在调用 touchStart 事件时能够模拟 isTrusted true 是否有任何库或任何类型的解决方法可以实现这一点 以下是我以编程方式运行 touchStart 时的输出与实际调用 touchStart 时的输出 我正在使用移
  • 预期类型:java.lang.Integer,实际值:org.hibernate.id.IdentifierGeneratorHelper$2

    当我尝试调用 save 方法时 我的代码中出现此错误 当我在 JBoss 服务器上时 此方法工作正常 现在我转到 tomcat 服务器 7 ERROR HHH000123 IllegalArgumentException in class
  • CoreNLP 如何识别小写的命名实体,例如 kobe bryant?

    我遇到一个问题 CoreNLP 只能识别以大写字符开头的命名实体 例如科比 布莱恩特 Kobe Bryant 但无法识别科比 布莱恩特 kobe bryant 作为一个人 那么CoreNLP如何识别以小写字符开头的命名实体 赞赏它 首先 您
  • 根据用户投票移动 div

    我是新来的 但我喜欢这个网站 我检查了其他类似的问题 但没有看到我要找的东西 我是一名音乐家 有一段时间我一直在做 每日之歌 每天写一首小歌 我想将歌曲发布为 div 在里面 li 在 div 中 我只想要一个简单的 mp3 播放器和一个
  • 有没有办法在不托管网站的情况下呈现网站并共享它?

    我正在为一个项目创建一个 repl it 网站 问题是我的老师要求不要发布该网站 这意味着我无法使用 repl it 来托管它 我想知道是否有任何方法可以制作可以通过 Google Chrome 查看的网站副本 而无需连接到主机 我有所有的
  • Java Marine API - 寻找 NMEA 数据

    我的最终目标是从 Adafruit Ultimate GPS NMEA 0183 标准 接收纬度和经度 GPS 信息到我的 Java 应用程序 我正在使用 Java Marine API 来执行此操作 然后 当前位置将与时间戳一起写入数据库
  • Swing JTable:当行可见或滚动到底部时发生事件?

    我正在寻找一种方法 以便在 JTable 滚动时收到通知 以便特定行变得可见 或者在表底部滚动到视图中时失败 理想情况下 这应该在不轮询的情况下完成 而是通过一些事件触发来完成 有任何想法吗 Add a ChangeListener到滚动窗
  • 改造 POST java.io.IOException:由 java.io.EOFException 引起的连接上的流意外结束:\n 未找到:

    我已经解决了与此相关的所有问题 但尚未找到适合我的解决方案 我在用着retrofit 2 8 1 and OkHttp 4 5 0 我的服务界面如下所示 public interface MlApiService POST Multipar
  • 无法查找 Websphere 8.5 中是否启用了 SSL

    我编写了一个简单的 ejb 瘦客户端来查找 IBM WebSphere 8 5 中部署的 bean 当服务器上未启用 SSL 时 我能够成功查找 bean 但是一旦启用 SSL 我就开始收到下面提到的异常 This is how I ena
  • 是否包括触摸事件客户端X/Y 滚动?

    我正在尝试获取相对于的触摸坐标viewport来自触摸事件的浏览器 例如触摸启动 我尝试从 clientX Y 属性获取它们 但两者实际上都返回包括滚动在内的值 这是违反规范的 因为它说 clientX Y 应该返回坐标而不滚动 我尝试添加
  • Java 将函数添加到 json 对象而不使用引号。

    我正在用 java 构建一个 json 对象 我需要将一个函数传递到我的 javascript 中并使用 jquery isFunction 对其进行验证 我遇到的问题是我必须将 json 对象中的函数设置为字符串 但 json 对象将周围
  • JS 中的展开/休息运算符如何工作? [复制]

    这个问题在这里已经有答案了 我正在努力完全理解扩展 休息运算符在 JS 中的工作原理 我已经阅读了 MDN 文档 但我仍然不完全清楚 我在下面提供了一个示例 我在其中使用了它并且它按预期工作 const users name Samir a

随机推荐

  • 在 C# 中从 DBMS_OUTPUT.GET_LINES 获取输出缓冲区

    我正在尝试获取输出DBMS OUTPUT PUT LINE 通过 C 在我的匿名 PL SQL 块中调用方法 我在这里查看了其他几个相关问题 但仍然遇到麻烦 执行匿名块的返回码正在return 1 这应该是正确的docs https doc
  • 如何在 Google Compute Engine 中打开特定端口(例如 9090)

    我有 2 个 Google Compute Engine 实例 我想在这两个实例中打开端口 9090 我认为我们需要添加一些防火墙规则 你能告诉我该怎么做吗 Answer recommended by Google Cloud collec
  • 在 Jinja2 中显示嵌套字典

    我有以下 Jinja2 模板 block body for key in tree recursive set outer loop loop for subkey in tree key if subkey R tree key subk
  • 网络挖掘-分类算法

    我的高级项目是确定网页的主导类别 我抓取了 dmoz 现在我正在尝试构建arff 之后我将使用一些特征提取方法和分类算法 您知道哪种特征提取方法与用于网络挖掘的任何分类算法表现良好吗 u分类 http www uclassify com u
  • Java 同步引用

    我有A级和B级 public class A private static List
  • 有没有一种将视频从 Android 流式传输到 RTSP 服务器的好方法?

    我已经四处寻找并没有真正发现任何东西 我想通过流将视频从内置摄像头发送到我的 RTSP 服务器 在寻找示例时 我发现 MediaPlayer 的 setDataSource 方法可能只包含服务器上流的位置 我尝试用以下方法来模拟 media
  • 更新关系数据的算法

    已知哪些算法可以在存在数据库约束的情况下通过插入 更新和删除行来执行更新数据库的任务 更具体地说 要删除的行的前图像 要插入的行的后图像以及要更新的行的两个图像都在内存中 这些行可能用于多个表 更新的确切顺序要么是未知的 要么是没有被保留
  • mingw 中的 libpthread 找不到库

    我正在尝试使用 mingw 编译以下程序 include
  • 找到gzip的开头和结尾?

    我有一些文件 有一些随机字节和多个 gzip 文件 如何在某个文件中找到 gzip 流的开头和结尾 gzip 流之间有许多随机字节 所以 基本上我需要找到任何 gzip 文件并从那里获取它 读自RFC 1952 GZIP https www
  • 将 xml 转换为 JSON 的库,反之亦然

    我需要将 xml 中的一种文档格式转换为 JSON 反之亦然 我相信这是一个常见的要求 也许仍然有一个库可以做到这一点 有知道的吗 不是 C 但是纯粹的 XSLT 2 0 实现将 JSON 对象转换为 XML 文档 看看来自FXSL 2 x
  • Docker 构建“无法解析 'archive.ubuntu.com'” apt-get 无法安装任何内容

    我一直在尝试在以前可以工作但现在不再工作的各种文件上运行 Docker 构建 一旦 Docker 文件包含任何用于安装软件的行 它就会失败并显示一条消息 指出找不到该包 RUN apt get y install supervisor no
  • 在 C# 中,如果抛出未处理的异常,Finally 块是否会在 try、catch、finally 中执行? [复制]

    这个问题在这里已经有答案了 另一个面试问题期待真 假答案 但我不太确定 复制 在 NET 中 如果 catch 块中出现错误 finally 总是会被调用怎么办 https stackoverflow com questions 58209
  • python-pandas 和 mysql 等数据库

    Pandas 的文档提供了大量处理以各种格式存储的数据的最佳实践示例 然而 我找不到任何使用 MySQL 等数据库的好例子 任何人都可以向我指出链接或提供一些如何使用转换查询结果的代码片段mysql python有效地处理 Pandas 中
  • 在 ReactJS 中解析 JSON 数据

    我有这样的数据 movies abridged cast characters Dominic Toretto id 162652472 name Vin Diesel characters Brian O Conner id 162654
  • 按周分组并选择本周的记录

    我一直在尝试使用 MySQL 显示每周销售结果表 其中一周的结果应如下所示 Sun Mon Tues Wed Thur Fri Sat 所以我继续使用这个查询 SELECT DATE FORMAT cart calendar datefie
  • 如何使用 Java 连接到 Active Directory

    我使用的是Weblogic Ejb3 0 爪哇1 6 我需要通过 Java 代码访问 Active Directory 我读到了几种方法 Kerberos LDAP 有人可以建议我以舒适的方式这样做吗 我在哪里可以有一些完整的代码示例 谢谢
  • 检查 jolt 中是否为 null 或为空,并输入输入 JSON 中存在的另一个值

    这是我的输入 JSON AddressBilling FirstName Some Name LastName Some Name Address some address AddressShipping FirstName LastNam
  • 纯函数式语言中的高效堆

    作为 Haskell 的练习 我正在尝试实现堆排序 在命令式语言中 堆通常被实现为数组 但这在纯函数式语言中效率非常低 因此 我研究了二进制堆 但到目前为止我发现的所有内容都是从命令式的角度描述它们的 并且所提出的算法很难转化为函数设置 如
  • 访问扩展的background.js的控制台和开发工具

    我刚刚开始使用 Google Chrome 扩展 但似乎无法从后台 js 登录到控制台 当发生错误时 例如 由于语法错误 我也找不到任何错误消息 我的清单文件 name My First Extension version 1 0 mani
  • GWT 中的本机 Javascript 方法

    我的 GWT Java 类之一中有一个本机 Javascript 方法 但我在从本机 Javascript 代码调用我的 Java 方法时遇到问题 我试着跟随this http code google com webtoolkit doc