JMF - Duvidas player

Alguém pode dar uma olhada em minha classe para executar um AVI… (detalhe já foi adicionado o plugin jffmpeg-1.1.0.jar com os codecs necessários para execução do video) não exibe nenhum erro… apenas o componente de video capturado do método player.getVisualComponent(); não é devidamente inserido no painel. alguem por favor pode analisar o meu código? Obrigado

package jmfPlayer;
import java.io.IOException;
import java.net.MalformedURLException;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.swing.*;
import javax.media.GainControl;
import java.awt.*;

/**
 *
 * @author  cleber.goncalves
 */
public class Player extends javax.swing.JFrame {

    /** Creates new form Player */
    public Player() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jSlider1 = new javax.swing.JSlider();
        jLabel1 = new javax.swing.JLabel();
        play = new javax.swing.JButton();
        stop = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenu3 = new javax.swing.JMenu();
        jMenuBar2 = new javax.swing.JMenuBar();
        jMenu4 = new javax.swing.JMenu();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenu5 = new javax.swing.JMenu();
        jMenu6 = new javax.swing.JMenu();
        jPanel1 = new javax.swing.JPanel();
        texto = new javax.swing.JTextField();
        jMenuBar3 = new javax.swing.JMenuBar();
        jMenu7 = new javax.swing.JMenu();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenu8 = new javax.swing.JMenu();
        jMenu9 = new javax.swing.JMenu();
        jPanel2 = new javax.swing.JPanel();
        jMenuBar4 = new javax.swing.JMenuBar();
        jMenu10 = new javax.swing.JMenu();
        jMenuItem4 = new javax.swing.JMenuItem();
        jMenu11 = new javax.swing.JMenu();
        jMenu12 = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("MaxPlayer");
        setBackground(new java.awt.Color(0, 153, 153));
        setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        setForeground(java.awt.Color.white);
        setResizable(false);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });

        jSlider1.setMaximum(VOLUM_MAX);
        jSlider1.setMinimum(VOLUM_MIN);
        jSlider1.setValue(VOLUM_INIT);
        jSlider1.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jSlider1StateChanged(evt);
            }
        });

        jLabel1.setText("Volume");

        play.setIcon(new javax.swing.ImageIcon(getClass().getResource("/control_play.png"))); // NOI18N
        play.setText("Play");
        play.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                playActionPerformed(evt);
            }
        });

        stop.setIcon(new javax.swing.ImageIcon(getClass().getResource("/control_stop.png"))); // NOI18N
        stop.setText("Stop");
        stop.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                stopActionPerformed(evt);
            }
        });

        jMenu1.setText("Arquivo");

        jMenuItem1.setText("Abrir Arquivo");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem1);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Editar");
        jMenuBar1.add(jMenu2);

        jMenu3.setText("Exit");
        jMenu3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenu3ActionPerformed(evt);
            }
        });
        jMenuBar1.add(jMenu3);

        jMenu4.setText("Arquivo");

        jMenuItem2.setText("Abrir Arquivo");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem2);

        jMenuBar2.add(jMenu4);

        jMenu5.setText("Editar");
        jMenuBar2.add(jMenu5);

        jMenu6.setText("Exit");
        jMenu6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenu3ActionPerformed(evt);
            }
        });
        jMenuBar2.add(jMenu6);

        texto.setEditable(false);
        texto.setBorder(javax.swing.BorderFactory.createMatteBorder(1, 1, 1, 1, new java.awt.Color(0, 102, 102)));

        org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, texto, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 435, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel1Layout.createSequentialGroup()
                .addContainerGap(27, Short.MAX_VALUE)
                .add(texto, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
        );

        jMenu7.setText("Arquivo");

        jMenuItem3.setText("Abrir Arquivo");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu7.add(jMenuItem3);

        jMenuBar3.add(jMenu7);

        jMenu8.setText("Editar");
        jMenuBar3.add(jMenu8);

        jMenu9.setText("Exit");
        jMenu9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenu3ActionPerformed(evt);
            }
        });
        jMenuBar3.add(jMenu9);

        jPanel2.setBackground(new java.awt.Color(0, 0, 0));

        org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 435, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 286, Short.MAX_VALUE)
        );

        jMenu10.setText("Arquivo");

        jMenuItem4.setText("Abrir Arquivo");
        jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu10.add(jMenuItem4);

        jMenuBar4.add(jMenu10);

        jMenu11.setText("Editar");
        jMenuBar4.add(jMenu11);

        jMenu12.setText("Exit");
        jMenu12.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenu3ActionPerformed(evt);
            }
        });
        jMenuBar4.add(jMenu12);

        setJMenuBar(jMenuBar4);

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jLabel1)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jSlider1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 70, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(22, 22, 22))
            .add(layout.createSequentialGroup()
                .add(146, 146, 146)
                .add(play)
                .add(26, 26, 26)
                .add(stop)
                .addContainerGap(135, Short.MAX_VALUE))
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(121, 121, 121)
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(jSlider1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(jLabel1)))
                    .add(layout.createSequentialGroup()
                        .add(27, 27, 27)
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(stop)
                            .add(play))))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

private void stopActionPerformed(java.awt.event.ActionEvent evt) {                                     

    if (player.getState() == player.Started) {

        player.stop();

    } else {

        JOptionPane.showMessageDialog(null, "Erro ao Parar o audio não existe arquivo carregado");
    }

}                                    

private void jMenu3ActionPerformed(java.awt.event.ActionEvent evt) {                                       

    setVisible(false);

}                                      

    public void adicionarComponente(JPanel p) {
    }
private void playActionPerformed(java.awt.event.ActionEvent evt) {                                     
    try {

        if (audio.getAudioMP3() != null) {

            player = Manager.createRealizedPlayer(audio.getAudioMP3());

            //get GainControl
            GainControl volumControl = player.getGainControl();
            //set the initial volume
            volumControl.setLevel(VOLUM_INIT_LEVEL);

            Component controle = player.getControlPanelComponent();
            controle.setSize(440, 20);
            controle.setBackground(Color.CYAN);
            controle.setName("Controle");
            jPanel1.add(controle, BorderLayout.CENTER);
           
            Component video = player.getVisualComponent();
            
            jPanel2.add(video, BorderLayout.CENTER);                                   
            jPanel2.revalidate();
            
            player.start();
            
        } else {
            JOptionPane.showMessageDialog(null, "Erro ao Executar arquivos não carregado");
        }

    } catch (NoPlayerException e1) {
        // TODO Auto-generated catch block  
        e1.printStackTrace();
    } catch (IOException e2) {
        // TODO Auto-generated catch block  
        e2.printStackTrace();
    } catch (CannotRealizeException e3) {
        // TODO Auto-generated catch block  

        e3.printStackTrace();

    }

}                                    

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    arqMusica = new JFileChooser();

    int resultado = arqMusica.showOpenDialog(null);

    if (resultado == JFileChooser.APPROVE_OPTION) {

        play.setIcon(new javax.swing.ImageIcon(getClass().getResource("/control_play_blue.png")));
        stop.setIcon(new javax.swing.ImageIcon(getClass().getResource("/control_stop_blue.png")));

        try {

            audio.setAudioMP3(arqMusica.getSelectedFile().toURL());

            texto.setText(arqMusica.getSelectedFile().toURL().getFile());

       
        } catch (MalformedURLException e1) {

            JOptionPane.showMessageDialog(null, " Erro ao criar URL ", " Erro ", JOptionPane.ERROR_MESSAGE);
        }

    }
}                                          
private void jSlider1StateChanged(javax.swing.event.ChangeEvent evt) {                                      
//get GainControl
    GainControl volumControl = player.getGainControl();
    JSlider source = (JSlider) evt.getSource();

    //se o JSlider for manipulado ajusta o volume
    if (source.getValueIsAdjusting()) {
        //converte o escala do volume para float (0.0 - 1.0)
        float newVolum = ((float) source.getValue()) / 10;
        volumControl.setLevel(newVolum);
    }
}                                     

private void formWindowOpened(java.awt.event.WindowEvent evt) {

    jPanel2.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    
}


    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Player().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JLabel jLabel1;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu10;
    private javax.swing.JMenu jMenu11;
    private javax.swing.JMenu jMenu12;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenu jMenu4;
    private javax.swing.JMenu jMenu5;
    private javax.swing.JMenu jMenu6;
    private javax.swing.JMenu jMenu7;
    private javax.swing.JMenu jMenu8;
    private javax.swing.JMenu jMenu9;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuBar jMenuBar2;
    private javax.swing.JMenuBar jMenuBar3;
    private javax.swing.JMenuBar jMenuBar4;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JSlider jSlider1;
    private javax.swing.JButton play;
    private javax.swing.JButton stop;
    private javax.swing.JTextField texto;
    // End of variables declaration
    private Audio audio = new Audio();  
    private javax.media.Player player = null;
    private JFileChooser arqMusica = null ;
    
    //set up volum slider's parameters
    static final int VOLUM_MIN = 0;
    static final int VOLUM_MAX = 10;
    static final int VOLUM_INIT = 2;
    static final float VOLUM_INIT_LEVEL = 0.2f;
}

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jmfPlayer;

import java.net.URL;  
import javax.swing.JPanel;  

public class Audio extends JPanel {  

	private URL audioMP3 = null ;     


	public URL getAudioMP3() {  

		return audioMP3;  

	}  




	public void setAudioMP3(URL audioMP3) {  

		this.audioMP3 = audioMP3;  

	}  




}  

Alguem ao menos poderia me dizer, se no NetBeans tem alguma forma diferente adicionar o Componente de Video player.getVisualComponent();
ao Painel. pois no eclipse funcionou normal?