我有一個用Swing編寫的應用程序,其中我想使用JavaFX的MediaPlayer播放音頻/聲音文件。在現有的Swing項目中使用JavaFX的MediaPlayer
這是主文件的精簡版:
class MyApp
{
private MyApp myApp;
private JFrame myFrame;
private Media media;
private MediaPlayer mediaPlayer;
public static void main(String[] args)
{
Runnable thread = new Runnable()
{
public void run()
{
myApp = new MyApp();
}
};
SwingUtilities.invokeLater(thread);
}
public void MyApp()
{
//this is called by SwingUtilities.invokeLater();
URL url = //getting URL to a sound file stored locally//;
media = new Media(url.toString());
mediaPlayer = new MediaPlayer(media);
mediaPlayer.play();
myFrame = new JFrame(); //building swing UI here
}
這似乎在NetBeans中工作。但是,當Netbeans構建一個.jar文件,並嘗試運行.jar時,我會在.jar目錄中生成一個包含一些內存/線程錯誤的錯誤日誌文件。
我是否需要使用Platform.runLater()
方法才能使其工作?或者還有什麼我做錯了?
根據問題中的建議檢查代碼,看看是否確定。以下可能不適用於您的案例,但您可以嘗試在NetBeans中創建JavaFX項目類型並將主類設置爲您的Swing類(它可能不是受支持的配置,但對於我今天早些時候它似乎可以正常工作)。這樣,Netbeans將使用JavaFX工具自動完成所有打包,併爲您創建一個支持JavaFX的jar,而無需您自己的構建文件和清單。 – jewelsea
如果您仍然遇到問題,請創建一個簡短的可執行示例並將其發佈,環境說明和錯誤轉儲針對運行時項目創建的問題http://javafx-jira.kenai.com – jewelsea
感謝所有信息寶石,現在解決了 –