Problema com EventKey - JavaCV

Oi! (Primeiro post aqui, xD)

Eu estou tentando fazer um programa que mostra um video usando JavaCV que fecha a janela (ou o vídeo) ao ser apertado a tecla ESC. Segue meu código:

[code]
import java.awt.event.ActionEvent;
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.FrameGrabber;
import com.googlecode.javacv.cpp.opencv_core.*;
import com.googlecode.javacv.OpenCVFrameGrabber;
import java.awt.event.ActionListener;

import javax.swing.JDesktopPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class AbrirVideo extends JFrame {

public static void main(String[] args){
	
	JFrame window = new JFrame("JavaCV");
	final JDesktopPane desktop = new JDesktopPane();   
    JMenuBar myMenuBar = new JMenuBar();
    JMenu myMenuFile = new JMenu("File");
    JMenuItem openVideo = new JMenuItem("Open Video");
    myMenuBar.add(myMenuFile);
    myMenuFile.add(openVideo);
    JMenuItem exit = new JMenuItem("Exit");
    exit.addActionListener(new ActionListener() {
    	public void actionPerformed(ActionEvent e) {
    		System.exit(0);
    	}
    });
    
    myMenuFile.add(exit);
    
    openVideo.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        	String path = "";
       	 	JFileChooser file = new JFileChooser();
       	 	if(file.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) path = file.getSelectedFile().getAbsolutePath();
            CanvasFrame canvas = new CanvasFrame("Video Canvas"); 
            canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);   
            FrameGrabber grabber = new OpenCVFrameGrabber(path);  
            try {      
            	grabber.start();
            	IplImage img;
            	while(true){
            		img = grabber.grab();
            		canvas.setCanvasSize(grabber.getImageWidth(), grabber.getImageHeight());
            		if(img!=null){
            			canvas.showImage(img);
            			desktop.add(canvas);
            			canvas.waitKey(2);
            			if(canvas.waitKey(2).getKeyChar()==27) System.exit(0);
            		}
            	}
            }catch (Exception ae) {}
        }
    });
    window.add(desktop);
    window.setJMenuBar(myMenuBar);
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setSize(200, 100);
    window.setVisible(true);
}

} [/code]

Mas quando aperto o ESC, nada acontece! E além disso, quando adiciono a linha: “if(canvas.waitKey(2).getKeyChar()==27) System.exit(0);”, o vídeo não é transmitido, só fica parado (no primeiro quadro do vídeo). Alguém tem alguma ideia pra resolver esse problema?

Estou com um outro problema também: não consigo que o vídeo fique na janela interna ou no JDesktopPane criado, só consigo que ele seja exibido numa janela externa do próprio Canvas. Existe alguma maneira de o vídeo ser exibido dentro de algum JFrame?

Agradeço qualquer ajuda.
Até!
=]