JPanel Dinâmico

Boa tarde pessoal, estou precisando de uma ajuda.

Tenho um JInternalFrame sendo que nele tenho um JPanel com um botão. Ao clicar nesse botão eu faço uma pesquisa no banco que me retorna uma lista de alunos com algumas características de cada um. Eu preciso montar uma tabela com os dados de cada aluno. Pensei em criar uma classe separada onde teria um JPanel com uma tabela, e então para cada aluno da minha lista criar uma instância dessa classe passando os dados necessário pra preencher essa tabela, ou seja, existe uma tabela para cada aluno.

Agradeço a atenção e fico no aguardo.

Att,

Robert

ué… vc passou o problema e ja passou a solução? qual é a dúvida?

Queria saber se a ideia estava certa, pois estou começando a mexer com swing.

Bom, a única modificação que pensei depois de ter escrito é o seguinte, ao clicar no botão vou criar um JFrame, para ter as tabelas dos alunos em uma janela limpa.

A situação é a seguinte então, tenho:

1 classe chamada JanelaAluno que extende um JFrame, esta classe não tem nada, é apenas a janela.
1 classe chamada TabelaAluno que extende um JPanel, nesta classe eu montei uma JTable onde serão apresentados os dados.

Não estou conseguindo fazer com que quando eu clico no botão da aplicação crie uma instância da classe JanelaAluno passando uma lista de alunos e para cada aluno desta lista queria criar uma instância da classe TabelaAluno e adicionar ela à JanelaAluno.

O que consegui fazer foi apenas abrir o JFrame, ou seja, quando clico no botão da aplicação ele abre uma nova janela(JanelaAluno), mas dentro dela não tem nada, como se não tivesse conseguido adicionar as instâncias(TabelaAluno).

Agradeço novamente a atenção e fico no aguardo.

Att,

Robert

ainda tenho algumas duvidas…

pra cada aluno tem uma instancia da tabela? eh isso?
onde esta esse botao? em uma outra tela? e de la abre a janelaAluno e tabelaAluno? ou ele ta junto com a tabela ou janela e qndo clica abre uma nova tela?

sera q vc podia jogar alguns trechos principais do codigo pra entender? por exemplo onde vc cria a instancia da classe tabelaAluno e adiciona à JanelaAluno…

sem ver o codigo e entender direito, posso sugerir que vc trabalhe com uma classe Bean contendo os dados de cada aluno e guarde cada bean num HashMap pra ficar mais facil manipular… dae na outra classe vc monta a tabela e preenche ela com o HashMap…

Esclarecendo os pontos funciona assim:

Tenho uma classe onde está a aplicação e numa determinada tela tenho um botão chamdo “Carregar”, que ao ser clicado faz uma pesquisa no banco e retorna uma lista de alunos, vou considerar assim: “Aluno” e “List”

Nessa classe da aplicação o código do evento do botão vai fazer o seguinte:

private void jButtonCarregar(java.awt.event.ActionEvent evt){
    JanelaAluno janelaAluno = new JanelaAluno(List<Aluno>);
    janelaAluno.setVisible(true);
}

Na minha classe JanelaAluno terá algo assim:

public class JanelaAluno extends JFrame{

      public JanelaAluno(List<Aluno>){
            for(Aluno aluno : List<Aluno>){
                 TabelaAluno tabelaAluno = new TabelaAluno(aluno);
                  this.getContentPane().add(tabelaAluno);
            }
      }

}

E o que minha classe TabelaAluno vai fazer não importa, pois eu trato depois. O que não to conseguindo fazer é aparecer as instâncias de TabelaAluno na JanelaAluno.

Estou usando o netbeans e acredito que possa ser algo com relação ao códigos gerados automaticamente por ele, pois ele gera um “initComponents()” e imagino que possa influenciar onde coloco o código para criação das TabelaAluno.

Logo depois que escrevi isso acabei conseguindo que ele adicionasse uma TabelaAluno na JanelaAluno fazendo o seguinte:

TabelaAluno tabelaAluno = new TabelaAluno();
this.getContentPane().add(tabelaAluno);
pack();

Porém preciso que adicione várias TabelaAluno, então testei o seguinte para inserir 3 tabelas:

for(int i=0; i<3; i++){
    TabelaAluno tabelaAluno = new TabelaAluno();
    this.getContentPane().add(tabelaAluno);
    pack();
}

Mas não funcionou, pois adiciona apenas uma.

Agradeço a ajuda e espero ter conseguido me explicitar melhor para que consigas compreender o que estou fazendo.

Grande abraço.

Att,

Robert