Ser*_*hii 1 javascript javafx fxml
<?language javascript?>FXMLLoader在尝试处理 fxml 脚本时无法识别该指令(见下文)。错误消息是“未指定页面语言”。我的 fxml 如下(为简洁起见,省略了实际代码):
<?language javascript?>
<!-- differnet includes -->
...
<!-- actual fxml -->
<StackPane xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="com.xxx.xxx.MainViewController"
prefWidth="1200">
...
<!-- somewhere in the middle of the fxml code -->
<fx:script>
function clearTool1() {
tool1.setValue(null);
}
</fx:script>
...
<StackPane/>
Run Code Online (Sandbox Code Playgroud)
我调查了一下,发现ScriptEngineManagerjavafx 类实际上没有看到任何脚本引擎。特别是,在它的getEngineByName方法中,集合ScriptEngineFactory是空的,所以它没有找到任何JavaScript引擎,并在稍后抛出异常。我不会详细介绍这一点,因为目标不是调试 javafx 源代码,但我认为它作为提示可能很有用。
您是否知道为什么尽管 fxml 和其他所有内容都已正确编写,但脚本语言指令未被识别?
当然,您必须将脚本引擎实现包含到您的 pom 中...
<dependency>
<groupId>org.openjdk.nashorn</groudId>
<artifactId>nashorn-core</artifactId>
<version>15.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
感谢@Pointy 和@James_D 给出了相关提示。
| 归档时间: |
|
| 查看次数: |
439 次 |
| 最近记录: |