В чем может быть причина для получения этой ошибки во время выполнения (см. Заголовок) при обращении к классу 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, Windows 10. Ниже я приведу основные фрагменты, которые, как мы надеемся, смогут выделить проблему.
Со ссылкой на класс 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, но пока мне не повезло)?