Я считаю, что в вашем коде есть необъяснимое исключение.
Прежде всего, научитесь вызывать файл JNLP вручную с помощью javaws, чтобы вы могли видеть, что выводится на консоль. Например. javaws foo.jnlp
.
Если этого недостаточно, добавьте операторы печати (или операторы журнала, если вы используете протоколирование), чтобы вы могли ВИДЕТЬ, что окончательный оператор действительно достигнут.
Попробуйте
if (evt.getSource() == stopButton)
{
if (clipPlayer != null)
{
//Stop the sound from playing
clipPlayer.stopPlaying();
}
System.out.println("after stopPlaying(). rhythmWheel.NUM_WHEELS=" + rhythmWheel.NUM_WHEELS);
for (int i = 0; i < rhythmWheel.NUM_WHEELS; i++)
{
rhythmWheel.getWheelPanels()[i].wheel.setRotationAngle(0);
System.out.println("set " + i + " to 0");
}
//Stop the wheel from rotating.
paintTimer.stop();
System.out.println("stop() called");
}
Если вы видите «stop () вызывается», таймер должен остановиться.