J'ai créé un Thread qui joue une chanson d'une classe Runnable implémentée (Soundtrack), je veux l'arrêter en appuyant sur mon bouton (jMenuItem1ActionPerformed). Je ai googlé & essayé de nombreuses façons d'arrêter mais échoué, je pense que dans mon cas, il y a une autre façon de le faire. Le code ci-dessous:Comment arrêter un Thread en appuyant sur un bouton Java Swing?
public static class Soundtrack implements Runnable {
@Override
public void run() {
try{
File file = new File("SF.mp3");
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
try{
Player player = new Player(bis);
player.play();
}catch(JavaLayerException ex){}
}catch(IOException e){}
}
}
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
public static void main(String args[]) {
Thread background = new Thread(new Soundtrack());
background.start();
}
Pouvez-vous appeler player.stop() ou quelque chose comme ça? – jwils
Non je ne peux pas mais il y a player.close(), je ne peux pas l'appeler comme Player player = new Player(); player.close(); J'ai dû mettre toutes les commandes essayer et attraper même si cela ne fonctionne toujours pas, je pense que la classe Player n'est pas de Java à l'origine, j'ai ajouté une nouvelle bibliothèque JLayer 1.0.1 de http://www.javazoom.net/index.shtml afin de lire des fichiers mp3, ce sont les commandes que je peux définir dans le lecteur .: close(); est égal à (Objet o); getClass(); getPosition(); hashCode(); est complet(); notifier(); notifyAll(); jouer(); jouer (int i); toString(); attendez(); attendre (long l); attendez (long l, int i). – Rafa