InternalFrame

Tenho esse codigo e gostaria de colocar um InternalFrame no ActionListener (do menuItem), mas não estou conseguindo, alguém aí me ajuda? Obs: dei uma resumida no codigo, mas tudo ai tá sendo usado …

public class Menu implements KeyListener {
   
   public JMenuBar createMenuBar() { 
          
      JMenuBar menuBar;
      JMenu menu;
      JMenuItem menuItem;

      menuBar = new JMenuBar();

      menu = new JMenu("Opções");
      menu.setMnemonic(KeyEvent.VK_O);
      menuBar.add(menu);

      menuItem = new JMenuItem("Cadastrar",KeyEvent.VK_C);
      menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));        
      menuItem.setToolTipText("Cadastrar usuários");
      menuItem.addActionListener(
         
         new ActionListener() {
     
                   

              
              }
     
         }
                       
      );

      menu.add(menuItem);
      return menuBar;
   }
  
     
   public void keyTyped(KeyEvent e){ 
   } 
      
   public void keyPressed(KeyEvent e){ 

    } 

    public void keyReleased(KeyEvent e){ 
    } 
   
    

    public static void main(String[] args) {

       JFrame.setDefaultLookAndFeelDecorated(false);
       JFrame frame = new JFrame("Digita");
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
       Menu demo = new Menu();
       frame.setJMenuBar(demo.createMenuBar());
       frame.setSize(640,480);
       frame.setLocation(130,100);
       frame.setResizable(false);
       frame.setVisible(true);

  }

}

Aí vai um código simples:

[code]JMenuBar bar = new JMenuBar();

//Adicionando o menu 'principal'
JMenu MPrincipal = new JMenu ("Principal");
MPrincipal.setMnemonic ('P');
MPrincipal.setToolTipText("Apresenta todos os cadastros");
DPPrincipal.add(MPrincipal);

//adicionando o submenu produtos ao menu principal
JMenu MProdutos = new JMenu ("Produtos");
MProdutos.setMnemonic ('P');
MPrincipal.add (MProdutos);

//adicionando o menuitem "Cadastro" ao submenu Produtos
JMenuItem MICadastro = new JMenuItem ("Cadastro");
MICadastro.setMnemonic ('C');
MICadastro.addActionListener
(
 new ActionListener()
  {
   public void actionPerformed (ActionEvent event)
    {

     //cria a frame interna
     IFCadProd = new JInternalFrame(
     "PRINCIPAL - Cadastro de Produtos",false,true,false,true);

     //anexa o painel ao painel de conteúdo da frame interna
     Container CCadProd = IFCadProd.getContentPane();
     CadProduto PCadastroProdutos = new CadProduto();
     CCadProd.add(PCadastroProdutos,BorderLayout.CENTER);

     //anexa a frame à área de trabalho e a exibe
     DPPrincipal.add( IFCadProd );
     IFCadProd.setSize(792,526);
     IFCadProd.setVisible( true );

    }//Fim do public void actionPerformed
  }//Fim do new ActionListener()
);
MProdutos.add(MICadastro);[/code]

sempre achei melhor criar uma classe interna. Fica bem mais limpo e fácil de compreender o código.

Xi esqueci de falar que tem uma classe interna !!! :lol:

Foi mal !!! :oops: