Ajuda com GUI e padrão MVP

Estou desenvolvendo uma aplicação simples de gerencia de uma biblioteca como trabalho de faculdade e estou como os seguintes problemas:

Tenho até o momento duas telas a principal e a tela de cadastro, não estou conseguindo posicionar os elementos da tela de cadastro na tela principal.No caso como faço para acionar um evento e criar a tela de cadastro no panel principal da tela principal.
O segundo problema e com relação a Desing Pattern, gostaria de trabalhar com MVP, mas não sei como fazer isso.Alguém teria uma aplicação em MVP para me passar para eu dar uma olha de como funciona?Porque as que eu encontrei pela rede não funcionavam.

Segue as classe q eu estou usando.

CLASSE VISUALTESTE

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;

public class VisualTeste {

private JFrame jPrincipal;
private JPanel jTela;
private JMenuBar jMenuBar;
private JMenu jArquivo;
private JMenu jCadastro;
private JMenu jPesquisa;
private JMenu jSobre;

public VisualTeste (){
jPrincipal = new JFrame(“Livraria”);
jTela = new JPanel();
jMenuBar = new JMenuBar();
jArquivo = new JMenu(“Arquivo”);
jCadastro = new JMenu(“Cadastro”);
jPesquisa = new JMenu(“Pesquisa”);
jSobre = new JMenu(“Sobre”);

//Teste De Evento da Chamada da Tela Cadastro
jCadastro.addMouseListener(new java.awt.event.MouseAdapter(){
public void mouseClicked(MouseEvent evt) {
TeladeCadastroActionPerformed(evt);
}
});//Fim Do Teste de Evento
}

//Evento do Cadastro
public void TeladeCadastroActionPerformed(MouseEvent evt) {
TeladeCadastroTeste tc = new TeladeCadastroTeste();
System.out.println(“Evento Acionado Tela de Cadastro”);
tc.MontarTeladeCadastro();

//Labels
jTela.add(tc.getLabelAutor());
jTela.add(tc.getLabelEditora());
jTela.add(tc.getLabelLivro());

jTela.getComponent(0).setBounds(60,10,40,14);
jTela.getComponent(1).setBounds(260,10,50,14);
jTela.getComponent(2).setBounds(170,120,40,120);

//Panels
jTela.add(tc.getPanelAutor());
jTela.add(tc.getPanelEditora());
jTela.add(tc.getPanellLivro());

jTela.getComponent(3).setBounds(20,30,130,120);
jTela.getComponent(4).setBounds(230,30,130,120);
jTela.getComponent(5).setBounds(20,190,350,230);
jTela.setSize(500,500);

jTela.repaint();

}

public void MontarTela(){
jTela.setLayout(null);
jTela.setSize(450,450);
jMenuBar.add(jArquivo);
jMenuBar.add(jCadastro);
jMenuBar.add(jPesquisa);
jMenuBar.add(jSobre);
jPrincipal.add(jMenuBar,BorderLayout.NORTH);
jPrincipal.add(jTela,BorderLayout.CENTER);

}

public void MostrarTela(){
jPrincipal.setSize(500,500);
jPrincipal.setVisible(true);
jPrincipal.setLocation(250,250);
jPrincipal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}

CLASSE TELADECADASTROTESTE

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class TeladeCadastroTeste {

private JPanel jPrincipal;
private JPanel jAutor;
private JPanel jEditora;
private JPanel jLivro;
private JTextField jNomeAutor;
private JTextField jSobreNomeAutor;
private JTextField jNomeEditora;
private JTextField jISBNLivro;
private JTextField jTituloLivro;
private JTextField jCopyRightLivro;
private JTextField jNEditoraLivro;
private JTextField jQntCopiasLivro;
private JTextField jImgLivro;
private JTextField jPrecoLivro;
private JLabel jlNomeAutor;
private JLabel jlSobreNomeAutor;
private JLabel jlNomeEditora;
private JLabel jlISBNLivro;
private JLabel jlTituloLivro;
private JLabel jlCopyRightLivro;
private JLabel jlNEditoraLivro;
private JLabel jlQntCopiasLivro;
private JLabel jlImgLivro;
private JLabel jlPrecoLivro;
private JLabel jlLivro;
private JLabel jlAutor;
private JLabel jlEditora;

public TeladeCadastroTeste(){

jPrincipal = new JPanel();
jAutor = new JPanel();
jEditora = new JPanel();
jLivro = new JPanel();
jNomeAutor = new JTextField();
jSobreNomeAutor = new JTextField();
jNomeEditora = new JTextField();
jISBNLivro = new JTextField();
jTituloLivro = new JTextField();
jCopyRightLivro = new JTextField();
jNEditoraLivro = new JTextField();
jQntCopiasLivro = new JTextField();
jImgLivro = new JTextField();
jPrecoLivro = new JTextField();
jlNomeAutor = new JLabel(“Nome”);
jlSobreNomeAutor = new JLabel(“SobreNome”);
jlNomeEditora = new JLabel(“Nome”);
jlISBNLivro = new JLabel(“ISBN”);
jlTituloLivro = new JLabel(“Titulo”);
jlCopyRightLivro = new JLabel(“CopyRight”);
jlNEditoraLivro = new JLabel(“Número da Editora”);
jlQntCopiasLivro = new JLabel(“Quantitade de Copias”);
jlImgLivro = new JLabel(“Imagem”);
jlPrecoLivro = new JLabel(“Preço”);
jlLivro = new JLabel(“LIVRO”);
jlAutor = new JLabel(“AUTOR”);
jlEditora = new JLabel(“EDITORA”);
}

public JPanel MontarTeladeCadastro(){

jAutor.setLayout(null);
jEditora.setLayout(null);
jLivro.setLayout(null);

jAutor.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED
, new java.awt.Color(51, 51, 51), new java.awt.Color(153, 153, 153)));
jEditora.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED
, new java.awt.Color(51, 51, 51), new java.awt.Color(153, 153, 153)));
jLivro.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED
, new java.awt.Color(51, 51, 51), new java.awt.Color(153, 153, 153)));

//Panel Autor
jlNomeAutor.setSize(70,20);

jlNomeAutor.setBounds(10,10,27,14);
jNomeAutor.setBounds(10,30,59,20);
jlSobreNomeAutor.setBounds(10,60,60,14);
jSobreNomeAutor.setBounds(10,80,59,20);

jAutor.setBounds(10,80,59,20);

jAutor.add(jlNomeAutor);
jAutor.add(jNomeAutor);
jAutor.add(jlSobreNomeAutor);
jAutor.add(jSobreNomeAutor);

//Panel Editora
jEditora.add(jlNomeEditora);
jEditora.add(jNomeEditora);

jlNomeEditora.setBounds(10,10,27,14);
jNomeEditora.setBounds(10,30,59,20);

jEditora.setBounds(230,30,130,120);

//Panel Livro
jLivro.add(jlISBNLivro);
jLivro.add(jlTituloLivro);
jLivro.add(jlCopyRightLivro);
jLivro.add(jlNEditoraLivro);
jLivro.add(jlQntCopiasLivro);
jLivro.add(jlImgLivro);
jLivro.add(jlPrecoLivro);
jLivro.add(jISBNLivro);
jLivro.add(jTituloLivro);
jLivro.add(jCopyRightLivro);
jLivro.add(jNEditoraLivro);
jLivro.add(jQntCopiasLivro);
jLivro.add(jImgLivro);
jLivro.add(jPrecoLivro);

jlISBNLivro.setBounds(20,10,23,14);
jlTituloLivro.setBounds(190,10,26,14);
jlCopyRightLivro.setBounds(20,60,60,14);
jlNEditoraLivro.setBounds(190,60,90,14);
jlQntCopiasLivro.setBounds(20,110,110,14);
jlImgLivro.setBounds(190,110,38,14);
jlPrecoLivro.setBounds(20,160,27,14);
jISBNLivro.setBounds(20,30,120,20);
jTituloLivro.setBounds(190,30,140,20);
jCopyRightLivro.setBounds(20,80,59,20);
jNEditoraLivro.setBounds(190,80,59,20);
jQntCopiasLivro.setBounds(20,130,59,20);
jImgLivro.setBounds(190,130,59,20);
jPrecoLivro.setBounds(20,180,65,20);

//Frame Principal
jPrincipal.add(jAutor);
jPrincipal.add(jEditora);
jPrincipal.add(jLivro);
jPrincipal.add(jlAutor);
jPrincipal.add(jlEditora);
jPrincipal.add(jlLivro);

jlAutor.setBounds(60,10,40,14);
jlEditora.setBounds(260,10,50,14);
jlLivro.setBounds(170,170,34,120);
jAutor.setBounds(20,30,130,120);
jEditora.setBounds(230,30,130,120);
jLivro.setBounds(20,190,350,230);

System.out.println(“Montou a tela!”);
return jPrincipal;
}

//Teste Mandando Labels
public JLabel getLabelAutor(){
return jlAutor;
}
public JLabel getLabelEditora(){
return jlEditora;
}
public JLabel getLabelLivro(){
return jlLivro;
}

//Teste Mandando Panels
public JPanel getPanelAutor(){
return jAutor;
}
public JPanel getPanelEditora(){
return jEditora;
}
public JPanel getPanellLivro(){
return jLivro;
}

}

CLASSE MAIN

public class Main {
public static void main(String args[]){
VisualTeste vc = new VisualTeste();
vc.MontarTela();
vc.MostrarTela();
}

}

Grato,

Humphrey

Vou dar uma olhada pra vc ,mas só posso amanhã…
Blz ?
Mas em princípio vc está confundindo as coisas.
Vc deveria ter criado um JavaApplication
Com um Main e um JDesktopPane para colocar suas janelas de cadastro e outras mais.
Eu acho que fica melhor extender sua classe como JInternalFrame e não JFrame.

jPrincipal.add(jAutor);
jPrincipal.add(jEditora);
jPrincipal.add(jLivro);
jPrincipal.add(jlAutor);
jPrincipal.add(jlEditora);
jPrincipal.add(jlLivro);

Vc só está adicionando os paineis criados na outra janela que é a principal e não em uma janela de cadastro entendeu ?
Ai vc nem consegue definir nada.
O que vc está usando para fazer este código Eclipse ?
Se for instala o VE nele ,vai ficar mais fácil de fazer.
Até amanhã !

Sim estou usando o Eclipse com IDE…

Valeu a ajuda!

[quote=humphrey]Sim estou usando o Eclipse com IDE…

Valeu a ajuda![/quote]

Qual Eclipse 3.0 …3.1 qual ?
:idea: Baixe uma destas versões abaixo , depois que vc baixar vc me fala…que te dou uns toques de como usar o VE

Ecplise wtp-all-in-one-sdk

Se vc usa windows :arrow: http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drops/R-1.0.2-200604280245/wtp-all-in-one-sdk-R-1.0.2-200604280245-win32.zip

Se vc usa Linux :arrow: http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drops/R-1.0.2-200604280245/wtp-all-in-one-sdk-R-1.0.2-200604280245-linux-gtk.tar.gz

Um Abraço !