Estou querendo criar a seguinte aplicação, uma agenda telefonica, a Janela principal é um JFrame que usa um BorderLayout, no NORTH gostaria de colocar uma barra d ferramentas e no CENTER uma classe que extende JFrame, ela usa um CardLayout e gostaria que por exemplo, quando o usuario clicar no botão cadastrar na barra de ferramentas, eu chamo um metodo da classe que extende JPanel localizada no CENTER do JFrame para trocar o painel que será exibido… fiz da seguinte maneira.
Criei uma classe chamada FormCadastro que extende JPanel e usa um GridBagLayout para ser o formulario.
Criei uma classe chamada PainelCentral que extend JPanel e usa um CardLayout que ficara localizada no centro do JFrame e sera responsabilizada para trocar o conteudo do frame.
Criei uma classe chamada Aplicativo que extend JFrame e usar um BorderLayout que sera a classe principal.
Na classe PainelCentral eu adicionei os dois paineis (um em branco e uma instancia do FormCadastro)
Na classe Aplicativo criei uma instancia do PainelCentral e adicionei ao container.
dai blz… não usei show nem na classe FormCadastro nem na PainelCentral, so chamei o método show() na classe aplicativo, mas quando eu clico no botão para trocar a visualização (chama o método show(Component, String) da classe PainelCentral da pau e não muda o conteudo do JFrame : /.
como eu deveria proceder para fazer uma aplicação como a que estou tentando, em resumos seja, o usuario clica em um botão que muda o conteudo do JFrame???
Você não pode incluir um JFrame em outro JFrame; use um JPanel para fazer isso.
eu sei broder, as classe que estou incluindo no JFrame extendem JPanel.
Acho que o maior problema está sendo ao chamar o metodo show do CardLayout, mas mesmo assim, quero saber se essa é a maneira correta de fazar para alcançar o proposito de mudar o conteudo do JFrame.