Capturar imagens da webcam a cada 1 segundo usando JavaCV

Estou trabalhando em um projeto em que a webcam padrão tira fotos a cada 1 segundo utilizando o JavaCV. Por enquanto ,nesse code, ao clique do botão capturar ele captura uma foto e salva na pasta do programa. Pede-se que o programa salve as fotos em uma determinada pasta selecionada pelo usuário e que a webcam capture fotos a cada 1 segundo.

import javax.swing.JOptionPane;
import com.googlecode.javacv.CanvasFrame;    
import com.googlecode.javacv.OpenCVFrameGrabber;    
import com.googlecode.javacv.cpp.opencv_core.IplImage;    
import com.googlecode.javacv.cpp.opencv_highgui;    
import com.googlecode.javacv.cpp.opencv_highgui.CvCapture;    
import static com.googlecode.javacv.cpp.opencv_highgui.cvSaveImage;    
import java.awt.event.KeyEvent;    


OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);

JOptionPane.showMessageDialog(null, "Aperte a tecla P para parar a gravação");
        while(KeyEvent.VK_P){

try{
            grabber.start();

IplImage img = grabber.grab();

            if(img!=null){
                cvSaveImage("image1.jpg", img);
            }
        }
        catch(Exception e){
         e.printStackTrace();
        }
        setFocusable(true);
        setVisible(true);

        }

Vamos voltar a lógica de programação: como você resolveria o enunciado crie um programa em java que leia números inseridos pelo usuário, até que ele informe um número negativo?
Consegue pensar em alguma solução?
Se sim, imagine que o enunciado foi alterado para altere o programa anterior e faça com que, a cada número digitado, o sistema aguarde 1 segundo para a próxima instrução. Como resolveria isso?
Com estas respostas você resolve o problema.