JavaFX:在场景中的任何位置单击鼠标时出现IllegalArgumentException

 最佳乔海燕 发布于 2023-02-13 14:06

嗨,IllegalArgumentException当我点击任何控件或场景的空白区域时,我得到了.下面是堆栈跟踪.我不能为每个控件编写一个方法MouseEvent.当我点击场景中的空白区域或禁用的控件时,你能否建议一个解决方案来取消这个鼠标事件.

java.lang.IllegalArgumentException: argument type mismatch
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1435)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:69)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)
    at javafx.event.Event.fireEvent(Event.java:171)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3324)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3164)
    at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3119)
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1559)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2261)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:228)
    at com.sun.glass.ui.View.handleMouseEvent(View.java:528)
    at com.sun.glass.ui.View.notifyMouse(View.java:922)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
    at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73)
    at java.lang.Thread.run(Thread.java:722)

小智.. 6

我遇到了同样的问题,终于找到了答案.我正在使用最新的SceneBuilder来生成FXML.完成后,我使用'View/Show Sample Controller Skeleton',它很好地列出了所需的@FXML字段和动作例程.我的ListView购买#purchaseLVClicked在Builder的代码选项卡中有一个例程设置.不幸的是,建议的处理程序例程是:

    @FXML
    void purchaseLVClicked(ActionEvent event) {
    // Do something
    }

看到问题?这不是例程的名称 - 它匹配---但是应该代替的参数 .当我解决这个问题时,问题就消失了.没有仔细检查它们,道德就不相信"建议".(MouseEvent me)(ActionEvent event)

1 个回答
  • 我遇到了同样的问题,终于找到了答案.我正在使用最新的SceneBuilder来生成FXML.完成后,我使用'View/Show Sample Controller Skeleton',它很好地列出了所需的@FXML字段和动作例程.我的ListView购买#purchaseLVClicked在Builder的代码选项卡中有一个例程设置.不幸的是,建议的处理程序例程是:

        @FXML
        void purchaseLVClicked(ActionEvent event) {
        // Do something
        }
    

    看到问题?这不是例程的名称 - 它匹配---但是应该代替的参数 .当我解决这个问题时,问题就消失了.没有仔细检查它们,道德就不相信"建议".(MouseEvent me)(ActionEvent event)

    2023-02-13 14:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有