Как остановить поток, нажав кнопку Swing Java?

Я создал поток, который воспроизводит песню из внедренного класса Runnable (Soundtrack), и я хочу остановить его, нажав мою кнопку (jMenuItem1ActionPerformed). Я прогуглил это и попробовал много способов остановиться, но потерпел неудачу, я думаю, что в моем случае есть другой способ сделать это. Следующий код ниже:

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();
}  

1 ответ

Решение

Я хочу поблагодарить мою сестру за решение:

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:
        background.stop();     
}                                          
private static Thread background;
public static void main(String args[]) {
    background = new Thread(new Soundtrack());
    background.start();
}
Другие вопросы по тегам