Abrir JFrame

Galera sou novo por aqui e em JAVA tbm estou estudando e olhando em uns projetos de livros e fiz duas classes uma PRINCIPAL e outra frmCliente e gostaria de abrir a cliente pelo menu que criei mas não consigo se alguém puder dar uma força desde já agradeço.

SEGUE AS CLASSES :

import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class Principal extends JFrame implements ActionListener  {


final Icon imgEditar = new ImageIcon("E:/Botoes/Save.gif");
final Icon imgLimpar = new ImageIcon("E:/Botoes/Undo.gif");
	
private JDesktopPane mdiCadastro;

private JMenuBar mnuBarra		= new JMenuBar();

private JMenu mnuSistema		= new JMenu("Sistema");
private JMenu mnuCadastro  		= new JMenu("Cadastro");


private JMenuItem mnuConfig		= new JMenuItem("Configurações");
private JMenuItem mnuParame		= new JMenuItem("Paramêtros");
private JMenuItem mnuCliente	= new JMenuItem("Cliente");	


private JTextField jtxNome		= new JTextField();
private JTextField jtxEndereco	= new JTextField();

private JLabel jlbNome			= new JLabel("Nome");
private JLabel jlbEndereco		= new JLabel("Endereço");	

private JButton jbtSalvar		= new JButton();
private JButton jbtLimpar		= new JButton();



public void Executa(){	
	getContentPane().setLayout(null);
	mdiCadastro= new JDesktopPane();
	mdiCadastro.setBackground(new Color(250, 250, 250));
	getContentPane().add(mdiCadastro);
    setLocation(0,0);    
    setTitle("SIAPA - Sistema de Apoio Administrativo");		
	Toolkit tK = Toolkit.getDefaultToolkit();
	Dimension d = tK.getScreenSize();
	setSize(d.width,  d.height);	
    
    	    
    mnuBarra.add(mnuSistema);	      
    mnuSistema.setMnemonic('S');	    
    mnuSistema.add(mnuConfig);
    mnuConfig.setMnemonic('C');
    mnuSistema.addSeparator();
    mnuSistema.add(mnuParame);
    mnuParame.setMnemonic('P');

    mnuBarra.add(mnuCadastro);
    mnuCadastro.add(mnuCliente);
    mnuCliente.setMnemonic('C');
        
    
    jlbNome.setFont(new Font("Dialog", 1, 12));		
    jlbNome.setBounds(new Rectangle(10, 7, 50, 14));
    jtxNome.setBounds(new Rectangle(50, 7, 400, 20));
    jtxNome.setFont(new Font("Verdana", 1, 12));
    
    jlbEndereco.setFont(new Font("Dialog",1,12));
    jlbEndereco.setBounds(new Rectangle(10,32,65,14));	    
    jtxEndereco.setBounds(new Rectangle(75, 32, 400, 20));
    jtxEndereco.setFont(new Font("Verdana", 1, 12));    
    

    jbtSalvar.setMnemonic('G');
    jbtSalvar.setText("Gravar");
    jbtSalvar.setBounds( new Rectangle(203, 455, 105, 30));
    jbtSalvar.setToolTipText("Salvar Edição");
	jbtSalvar.setIcon(imgEditar);
    
    
    jbtLimpar.setMnemonic('L');
    jbtLimpar.setText("Limpar");	    
    jbtLimpar.setBounds( new Rectangle(318, 455, 105, 30));
    jbtLimpar.setToolTipText("Cancelar Edição");
    jbtLimpar.setIcon(imgLimpar);    	    
    
    getContentPane().add(jtxNome);
    getContentPane().add(jlbNome);
    getContentPane().add(jtxEndereco);
    getContentPane().add(jlbEndereco);
    getContentPane().add(jbtSalvar);
    getContentPane().add(jbtLimpar);	    
    setJMenuBar(mnuBarra);
    
    mnuCliente.addActionListener(this);
    
    setVisible(true);   
    
    
}

public static void main(String[] args) {
	JFrame.setDefaultLookAndFeelDecorated(true);		
    new Principal().Executa();
}


public void actionPerformed( ActionEvent e ) {
	if(e.getSource() == mnuCliente){			 
		frmCliente formCliente = new frmCliente();
		mdiCadastro.add(formCliente);
	    formCliente.show();			
	}
	
	 }

}

/////////////////////////////

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;

public class frmCliente extends JFrame {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	
	frmCliente fc = new frmCliente();
	fc.addWindowListener(new WindowAdapter(){
		public void windowClosing(WindowEvent e){
			System.exit(0);
		}
	}
	);		
	
	fc.setTitle("Teste");
	fc.setSize(400,200);
	fc.setLocation(200,100);	
	fc.setVisible(true);
}

}

transforma seui método public static void main(String[] args) em public static void showGUI() na classe frmCliente e chama o código assim:

 public void actionPerformed( ActionEvent e ) {
if(e.getSource() == mnuCliente){
frmCliente.showGUI();
} 
...

Tem maneiras melhores de se fazer, seria legal usar singleton para pegar apenas uma instância do frame quando ele for selecionado, mas como você está começando assim já está bom
:wink:

Kra, funcionou blz, muito obrigado pela ajuda.