2014-11-07 4 views
0

Это согласуется с моим последним вопросом - я получил звук петуха, который повторялся каждые пять секунд, но теперь мне пришлось добавить звук коровы и черный фон. Каждые пять секунд звук петуха и белый фон должны чередоваться с коровьим звуком и черным фоном. Однако, хотя моя программа компилируется, она просто воспроизводит звук петуха, затем звук коровы и не меняет цвет фона. Помогите!Как чередовать мои звуки в моей программе java?

Вот мой код:

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

public class Morning extends JFrame 
    implements ActionListener 
{ 
    private EasySound rooster; 
    private EasySound cow; 
    private int time; 

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

    cow = new EasySound("cow2.wav"); 
    cow.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) 
    { 
    Container c = getContentPane(); 
    if (time == 5000) 
     { 
     rooster.play(); 
     c.setBackground(Color.BLACK); 
     time = 0; 
     } 
    if (time == 0) 
     { 
     cow.play(); 
     c.setBackground(Color.WHITE); 
     time++; 
     } 
    } 
} 

Где моя ошибка?

Спасибо, кто поможет! Simone

ответ

0

Вам необходимо изменить второй if на else.
Так как вы использовали if для второго условия, как только вы сбросите time на 0, тогда фон снова станет белым; создавая впечатление, что он не изменился.

ОБНОВЛЕНО:
Я думаю, что вы хотели бы изменить его на черный первый, так как изначально фон побелели.

@Override 
public void actionPerformed(ActionEvent e) { 
    if (time == 0) { 
     rooster.play(); 
     c.setBackground(Color.BLACK); 
     time += 5000; 
    } 
    else /*if (time == 5000)*/ { 
     cow.play(); 
     c.setBackground(Color.WHITE); 
     time = 0; 
    } 
} 
+0

Я сделал то, что вы сказали, но программа по-прежнему воспроизводит звук петуха, а затем звук коровы, а фон остается белым. Какие-либо предложения? –

Смежные вопросы