所以我现在几乎都在终点线,在选择新歌或播放新歌时停止播放音乐有困难。
static boolean thread2Status = false;
btnPlay.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnPlay) {
if(thread2Status) {
mp3_player.play();
lblPlaying.setText("Enjoy the music!");
}
else if(!thread2Status) {
stop();
}
}
}
});
btnOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btnOpen) {
try {
if(thread2Status = true) {
Choose();
} else if(!thread2Status) {
stop();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
});
你们可以看到。有两个按钮,一个用于播放按钮,一个用于打开按钮(打开按钮有一个方法,其中FileChooser等等就是那里然而,那里没什么特别的。我为stop()
命名了一种方法,音乐在它应该停止时停止。我试过,如果该功能有效,它确实如此,方法没有任何问题,但这段代码。
你们看到我可能会对布尔人感到困惑,而我要做的就是制作这样的东西:
首先我选择一首歌,所以我使用 Open 按钮并选择一个文件。然后按播放播放歌曲。 (这里 - >)所以每当我再次播放Open时,音乐应该停止。这就是我想要做的事情,但我无法让它发挥作用。我现在可能会失明,但所有的帮助都会受到赞赏!
编辑1.1:
btnPlay.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnPlay) {
if(thread2Status) {
mp3_player.play();
lblPlaying.setText("Enjoy the music!");
}
else if(!thread2Status) {
stop();
}
thread2Status = !thread2Status; // this line switches boolean
}
}
});
btnOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btnOpen) {
try {
if(thread2Status) { // not necessary to explicit compare booleans
Choose();
} else if(!thread2Status){
stop();
}
thread2Status = !thread2Status; // this line switches boolean
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
});
现在发生的问题是我必须双击打开和播放才能使其正常工作
EDIT PART 2.0(打开按钮的问题,我必须双击它)
btnOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btnOpen) {
try {
if(sant) {
Choose();
} else{
stop();
}
sant = !sant;
} catch (IOException e1) {
System.out.println("we been balling");
}
}
}
});
sant = true, falsk = false
编辑4.0版通过删除Openbutton中的if-else语句使其工作!
答案 0 :(得分:3)
你有2个错误
if(thread2Status = true)
你要分配,而不是比较!只需使用if(thread2Status)
boolean
标志,因此if
中的程序流程始终相同
if (e.getSource() == btnPlay) {
if(thread2Status) {
mp3_player.play();
lblPlaying.setText("Enjoy the music!");
}
else {
stop();
}
thread2Status = !thread2Status; // this line switches boolean
}
和
if(e.getSource() == btnOpen) {
try {
if(thread2Status) { // not necessary to explicit compare booleans
Choose();
} else {
stop();
}
thread2Status = !thread2Status; // this line switches boolean
} catch (IOException e1) {
e1.printStackTrace();
}
}