Cronômetro regressivo HH:mm:ss

Pessoal, possuo um método que simula um cronômetro progressivo e mostra na tela HH:mm:ss começando em 00:00:00, gostaria de colocar uma opção para que este cronômetro seja regressivo, ou seja, eu defino um tempo (Ex.: 01:02:30) e ao clicar em INICIAR ele comece a rodar HH:mm:ss a partir deste tempo até chegar no 00:00:00, por favor, podem me ajudar:

Meu código atual (Cronômetro normal):

//Variáveis
private Timer timer;
private int currentSegundo = 0;
private int currentMinuto = 0;
private int currentHora = 0;
private int velocidade = 1000;

//Construtor da tela que inicia o método
public viewEMB_MesaBip() {
    initComponents();
    iniciarCronometro(lblCronometro);//Aqui está o método do cronômetro
}

//Botão INICIAR
private void btnIniciarActionPerformed(java.awt.event.ActionEvent evt) {
timer.restart();//Inicia a Thread do método para que o cronômetro rode
}

//Metodo CRONOMETRO (AQUI PRECISO DE AJUDA PARA SER REGRESSIVO)
private void iniciarCronometro(JLabel label) {
    ActionListener action = new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            currentSegundo++;
            if (currentSegundo == 60) {
                currentMinuto++;
                currentSegundo = 0;
            }
            if (currentMinuto == 60) {
                currentHora++;
                currentMinuto = 0;
            }
            String hr = currentHora <= 9 ? "0" + currentHora : currentHora + "";
            String min = currentMinuto <= 9 ? "0" + currentMinuto : currentMinuto + "";
            String seg = currentSegundo <= 9 ? "0" + currentSegundo : currentSegundo + "";
            label.setText(hr + ":" + min + ":" + seg);
        }
    };
    this.timer = new Timer(velocidade, action);
    this.timer.start();
}

//Metodo para parar o cronometro
private void zerarCronometro(JLabel label) {
    timer.stop();
    currentHora = 0;
    currentMinuto = 0;
    currentSegundo = 0;
    label.setText("00:00:00");
}

Troque ++ por –
60 por 0
0 por 59

Já tentei desta forma, não da certo pois começa a ficar negativo

Chama o método stop quando os 3 valores chegarem a 0.