1

scala 2.11 + JavaFX プロジェクトを 2.12.0-RC1 に更新したところ、コードは Java@FXMLアノテーションを集中的に使用します。

trait MainController {
  @FXML def onRun(event: ActionEvent) {
    val script = currentEngine.executeScript("editor.getValue()").toString
    runScript(script)
  }
}

<MenuItem mnemonicParsing="false" onAction="#onRun" text="Run">
   <accelerator>
        <KeyCodeCombination alt="UP" code="R" control="UP" meta="UP" shift="UP" shortcut="DOWN"/>
   </accelerator>
</MenuItem>

実行時に、実行中にエラーがスローされますFXMLLoader.load

javafx.fxml.LoadException: Error resolving onAction='#onRun', either the event handler is not in the Namespace or there is an error in the script.

コンパイル中に@FXMLアノテーション情報が失われたようです。2.12 ではすべてのトレイトがインターフェースにコンパイルされると聞きましたが、この変更はどのように問題を引き起こしますか? 回避策はありますか?

4

1 に答える 1

0

原因は不明ですが、scala-2.12.0-RC2 でこの問題は解決されています。ありがとう、Scala チーム。

于 2016-10-15T10:38:37.693 に答える