import java.awt.event.ActionEvent;import java.awt.event.KeyEvent;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 VideoJavaCV 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();final CanvasFrame canvas = new CanvasFrame("Video Canvas");canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);FrameGrabber grabber = new OpenCVFrameGrabber(path);canvas.setCanvasSize(grabber.getImageWidth(), grabber.getImageHeight());try {grabber.start();IplImage img;while(true){img = grabber.grab();if(img!=null){canvas.showImage(img);KeyEvent er = canvas.waitKey(2);if (er != null && er.getKeyChar() == KeyEvent.VK_ESCAPE) {return;}}}}catch (Exception ae) {}}});window.add(desktop);window.setJMenuBar(myMenuBar);window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);window.setSize(200, 100);window.setVisible(true);}}