【发布时间】:2017-10-11 20:44:38
【问题描述】:
我正在开发一个需要背景音乐的 Java 项目,因此我使用 jLayer(Java 平台的 MP3 库)来提高项目的适用性和性能。
我需要在JFileChooser 的帮助下播放音乐,以便用户可以轻松地从菜单栏运行自己的音乐。
但每当我尝试运行任何随机音乐时,整个 GUI 应用程序都会冻结。
Here's the code snippet of my Application
This is the Image of the Menubar where "Choose your own Music" is added as the Menu Item
谁能帮我修复这个代码?
【问题讨论】:
-
最可能的原因与冻结任何 GUI 的原因相同 - 您正在阻止事件调度线程。这个问题很常见,你应该能够找到关于这个主题的无穷无尽的问题 - 解决方案总是一样的,不要在 EDT 上做任何需要很长时间或以任何方式阻塞的事情。您使用的方法将取决于您想要实现的目标。您可以使用自己的
Thread或使用SwingWorker -
Here's the code snippet of my Application- 不要发布代码的图像。当您提出问题时,请发布适当的 minimal reproducible example 来说明问题。 -
@MadProgrammer 感谢您的回复实际上我对多线程和并发的概念很陌生,你能解释一下我的方式和地点吗?可以在我的 Java 应用程序中实现 SwingWorker
-
@camickr 很抱歉,下次我一定会处理好这个问题
-
@ChetanNautiyal,
Can you please explain how and where i can implement SwingWorker in my Java Application- 我已经在 17 小时前给了你答案。阅读教程!!!