2014-11-06 68 views
0

這裏是我的代碼:如何讓我的程序每五秒重複一次聲音?

import java.awt.*; 
import java.awt.event.* 
import javax.swing.*; 

public class Morning extends JFrame 
implements ActionListener 

{ 
    private EasySound rooster; 
    private int time; 

    public Morning() 
    super("Morning"); 
    rooster = new EasySound("roost.wav"); 
    rooster.play(); 

    time = 0; 
    Timer clock = new Timer(5000, this); 
    clock.start(); 

    Container c = getContentPane(); 
    c.setBackground(Color.WHITE); 
    } 

    public static void main(String[] args) 
    { 
    Morning morning = new Morning(); 
    morning.setSize(300, 150); 
    morning.setDefaultCloseOperation(EXIT_ON_CLOSE); 
    morning.setVisible(true); 
    } 

    public void actionPerformed(ActionEvent e) 
    { 
    time++; 
    } 
} 

所以我的問題是,我該如何讓roost.wav聲音播放每五秒鐘。該程序編譯,但它播放一次後不重播。

感謝任何幫助! Simone

+0

那是因爲你只玩一次。你創建的計時器沒有做任何事情。 – forgivenson 2014-11-06 19:20:58

+0

你可能想檢查你的大括號,特別是構造函數的正文。此外,您在其中一個導入時丟失了分號。 – MarGar 2014-11-06 19:27:23

回答

3

這是執行操作的方法,您必須在其中放置播放聲音的代碼。由於定時器的作用,它會定期調用actionperformed。

+0

非常感謝你!一旦我讀到這個,它就顯得很明顯。謝謝! :) – 2014-11-06 23:00:04

0

您只在創建Morning對象時播放聲音,並且由於您只在代碼中創建了一個Morning對象,所以聲音只播放一次。您可能需要創建更多Morning對象,或者將播放聲音的代碼移動到actionPerformed()方法。