我有一个工作的java程序,一个简单的MP3播放器.
一切正常,可以跳过轨道等...但经过几次跳过(尤其是后退按钮(上一首曲目),我总是得到一个IllegalThreadStateException.我不熟悉线程,所以我不知道该怎么做.
这是一个学校作业,MP3课程已经给我们.(不能修改)
任何提示将非常感谢!谢谢!
MP3类(不能修改):
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import javazoom.jl.player.Player;
public class MP3 extends Thread {
private final File mp3_file;
private Player player;
public MP3(String mp3_path) {
mp3_file = new File(mp3_path);
}
public MP3(File mp3) {
mp3_file = mp3;
}
public void play() {
try {
FileInputStream fis = new FileInputStream(mp3_file);
BufferedInputStream bis = new BufferedInputStream(fis);
player = new Player(bis);
}
catch (Exception e) {
System.out.println("Problem playing file " + mp3_file);
System.out.println(e);
}
// run …Run Code Online (Sandbox Code Playgroud) 我创建了一个简单的Nibbles(Snakes)游戏,一切都很完美.
但是,当我将所有内容复制到我的mac(在PC上开发)并编译相同的java文件时,用于移动我的蛇的keyAdapter事件监听器没有响应.
我不确定是什么问题.
这是片段,但如果有人愿意看一下整个节目,我可以私下发送.谢谢!
getThis().addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent event) {
if(event.getKeyCode() == KeyEvent.VK_UP)
if(!glass.game.getDirection().equals("D"))
glass.game.setDirection("U");
if(event.getKeyCode() == KeyEvent.VK_DOWN)
if(!glass.game.getDirection().equals("U"))
glass.game.setDirection("D");
if(event.getKeyCode() == KeyEvent.VK_LEFT)
if(!glass.game.getDirection().equals("R"))
glass.game.setDirection("L");
if(event.getKeyCode() == KeyEvent.VK_RIGHT)
if(!glass.game.getDirection().equals("L"))
glass.game.setDirection("R");
}
});
Run Code Online (Sandbox Code Playgroud)