当我播放mp3文件时,Jbuttons停了下来

时间:2018-01-25 20:43:16

标签: java swing jbutton mp3 jlayer

我正在尝试使用摇摆制作一个MP3播放器,当我播放一首歌时,我的jbutton播放仍然停留在我的应用程序中,我无法按任何其他按钮。我试图使用线程但它没有用,这是我的游戏功能代码。

ToList()

1 个答案:

答案 0 :(得分:1)

  

当我播放一首歌时,我的jbutton播放仍然无法停止,我无法按下我应用中的任何其他按钮

SwingUtilities.invokeLater(fplay);

invokeLater(...)方法将代码添加到Event Dispatch Thread (EDT)的末尾。所以这意味着音频仍在EDT上执行,GUI无法响应事件。

相反,您需要启动单独的Thread,因此音频不会阻止GUI响应事件。

因此,您希望将Runnable传递给Thread并启动Thread

阅读Concurrency上Swing教程中的部分,了解有关EDT的更多信息。

  

我尝试使用线程并且它没有工作

嗯,这是正确的解决方案。我无法猜出你做错了什么,虽然你永远不应该有一个空的挡块。如果你没有显示任何内容,你怎么知道错误是什么?

Concurrency上的教程还介绍了如何使用SwingWorker,这可能是一个更好的解决方案。