-1
乱数を生成し、その数に基づいてメロディーを演奏するコードを作ろうとしました。 だから私は次のようにスクリプト:for for文を遅らせています[JAVA]
void playSample(int i) {
switch(randomNum[i]) {
case 1:
//play do1.wav
se.setFile(sound1);
se.play();
break;
case 2:
//re
se.setFile(sound2);
se.play();
break;
case 3:
//mi
se.setFile(sound3);
se.play();
break;
case 4:
//fa
se.setFile(sound4);
se.play();
break;
case 5:
//sol
se.setFile(sound5);
se.play();
break;
case 6:
//ra
se.setFile(sound6);
se.play();
break;
case 7:
//ti
se.setFile(sound7);
se.play();
break;
default:
//do2
se.setFile(sound8);
se.play();
break;
}
}
とボタンのActionListenerが
bListenMusic.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//plays the music.
//playSample();
for(int i=0; i<8; i++) {
playSample(i);
//waits.
}
}
});
}
を押した私はいくつかの方法はのThread.sleep(...)を追加することが含ま試してみました。 forステートメントとplaySampleメソッドの間で、InterruptedExceptionが発生します。 どうすればいいですか? +すべての変数が正常に動作しています。
「Thread.sleep」を使用した場所にコードを貼り付けます。正確なエラーメッセージは次のとおりです。エラーはコンパイル時エラーですか、実行時例外ですか? – hnefatl
これはスイングですか?その場合は 'Timer'を使います。 – Carcigenicate
実際にInterruptedExceptionが発生しますか?あるいは、試してみる/キャッチする/スローするのがわからないということだけですか?そして、すべてのサウンドを配列に入れると、あなたはそのひどいswitch/caseステートメントを持つ必要がなくなります。 –