ScalaFx MouseEvent:java.lang.NoSuchFieldError:返回

好沃伦

引用ScalaFx类时在运行时出现此错误的原因是什么(请参见标题),而不是如果我切换到JavaFx类引用(替代方法),则按预期方式工作?使用Scala 2.12和ScalaFx 8.0.192-R14时,无需使用基于JavaFx的解决方法就可以运行。关于环境:Scala 2.13.1,ScalaFx 12.0.2-R18,IntelliJ 2019.3.2,Java 8,Windows10。我在下面提供了希望能突出此问题的核心摘录。

使用ScalaFx MouseEvent类引用,似乎用me.button生成异常:

import scalafx.Includes._    
import scalafx.scene.input.{MouseButton, MouseEvent}
...
    def flowPaneEvents(flowpane: FlowPane): Unit = {
      flowpane.onMouseClicked = (me: MouseEvent) => {
        // this statement causes the exception with scalafx
        me.button match {
          case MouseButton.Primary   => println("primary button")
          case MouseButton.Secondary => println("secondary button")
          case _ =>
        }
        me.consume()
      }
    }

而引用javaFx类则一切正常。见下文:

import scalafx.Includes._    
import javafx.scene.{input => jfxsi}
...
def flowPaneEvents(flowpane: FlowPane): Unit = {
  flowpane.onMouseClicked = (me: MouseEvent) => {
    // this javafx based reference gets things done
    me.getButton match {
      case jfxsi.MouseButton.PRIMARY => println("primary button")
      case jfxsi.MouseButton.SECONDARY => println("secondary button")
      case _ =>
    }
    me.consume()
  }
}

我想念的是什么(我试图重新导入sbt库依赖项,但到目前为止我还不走运)?

哈雷克

ScalaFX 12.0.2将与JavaFX 12一起使用。如果将它与Java 8一起使用,当路径中包含JavaFX 8时,您会遇到奇怪的问题。使用ScalaFX 8 for Java8。这在项目网站上有明确说明:https : //github.com/scalafx/scalafx#scalafx-8

JavaFX 12中添加了字段“ BACK”。请参阅此处的API文档:https : //openjfx.io/javadoc/12/javafx.graphics/javafx/scene/input/MouseButton.html#BACK JavaFX 8中不存在该字段。因此,这就是“ java.lang.NoSuchFieldError:返回”的原因-ScalaFX试图访问不存在的字段。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

java.lang.NoSuchFieldError:INSTANCE

java.lang.NoSuchFieldError:默认

java.lang.NoSuchFieldError:反思

java.lang.NoSuchFieldError:IBM_JAVA

NullnessChecker错误:java.lang.NoSuchFieldError:释放

java.lang.NoSuchFieldError: INSTANCE - WebDriver

更改类后java.lang.NoSuchFieldError

HttpClientBuilder-java.lang.NoSuchFieldError:INSTANCE

春季:java.lang.NoSuchFieldError:IMPORT_BEAN_NAME_GENERATOR

java.lang.NoSuchFieldError的:ACCEPT_CASE_INSENSITIVE_VALUES

正在创建CA ...意外错误java.lang.NoSuchFieldError:BasicConstraints

“java.lang.NoSuchFieldError的:超级”异常 - 错误的编译器?

使用 AWS Amplify API 時的 Android java.lang.NoSuchFieldError

java.lang.NoSuchFieldError: 运行 JUnit 测试时的边缘

使用ScalaTest时出现java.lang.NoSuchFieldError

线程“主”中的异常java.lang.NoSuchFieldError:TRACE

Spring 3.1 entityManagerFactory java.lang.NoSuchFieldError:NULL错误

GPIO - java.lang.NoSuchFieldError: device_reference

JSON解析器-java.lang.NoSuchFieldError:defaultReader

Eclipse无法启动:java.lang.NoSuchFieldError:url

java.lang.NoSuchFieldError:Apache HttpComonents和Wildfly中的实例

由第3方模块引起的java.lang.NoSuchFieldError

java中如何解决java.lang.NoSuchFieldError: RETURN_NULL_AND_BLANK

线程“主”中的异常java.lang.NoSuchFieldError:JAVA_VENDOR

适用于ssm的aws Java sdk提供了java.lang.NoSuchFieldError:SIGNING_REGION

Proguard应用程式当机(造成原因:java.lang.NoSuchFieldError:否“ Lcom / facebook / jni / HybridData)

抖动错误:java.lang.NoSuchFieldError的PREFER_HIGHEST_OR_REMOTE_VERSION_NO_FORCE_STAGING

如何解决此错误:java.lang.NoSuchFieldError:UTF_32BE?

JPA:QUERY DSL错误:java.lang.NoSuchFieldError:LIKE_IC