我用java编写游戏,我决定添加音乐。我试过这段代码:
let pyramid = sampleString.split(separator: "\n").map { $0.split(separator: " ").compactMap(Double.init) }
但由于某种原因,我收到了这个错误:
文件 music.mp3 与运行它的类I在同一个文件夹中,代码在tick()方法中运行。有人知道如何解决这个问题吗?
谢谢,Lukas
答案 0 :(得分:1)
您尝试从JavaFX应用程序的上下文之外执行上述代码。 Application
是一个JavaFX组件,因此依赖于初始化的Toolkit,您不能(默认情况下)只需根据需要启动JFX组件。
"适当"方法是子类化JFX new JFXPanel();
,然后从那里启动你的应用程序,这将正确初始化JFX平台。
" hack"方法是在Swing EDT:
中运行以下代码行Platform.startup(() -> {
//Code to run on JFX thread
});
...这也会产生初始化JFX工具包的副作用,并允许您创建其他JFX组件。
正如评论中所指出的那样,从Java 9开始,您可以使用较少的hacky方法:
-Dorg.kie.demo=false