Adicionar JPanel em JFrame

1 resposta
L

Olá, estou fazendo um aplicativo usando Swing.
Nele crio dinamicamente vários paineis (JPanel - tenho uma classe ja com as caracteristicas), a cada um que crio, tenho que exibilo no JFrame Principal.
Fiz o seguinte código:

public void adicionaProdutor(L27Produtor produtor) {

// Guarda o produtor
  this.produtores.add(produtor);
  
  // Adiciona o painel do produtor
  L27PnProdutor painel= produtor.getPainel();
  this.getContentPane().add(painel);
  painel.setLocation(0,0);
  this.getContentPane().repaint();

}

Onde: L27PnProdutor é o JPanel e L27Produtor é uma classe que possui o painel.
Quando recebo o produtor, capturo o painel dele e adiciono ao JFrame em uma posição especifica, neste caso “0,0” e logo em seguida executo um repaint no Pane.
Fazendo isso ele não esta atualizando o painel na tela, algum comando esta faltando?

Obs.: não sei nenhum layout para o getContentPane.

1 Resposta

J

cara, o contentpane do frame deve estar com o layout o default (BORDER). ai voce esta adicionando sim, mas precisaria passar mais alguns parametros.
o jeito mais facil de adicionar componentes (nao muito limpo, mas o mais facil) é usando layout null.
faz as seguintes modificacoes:

L27PnProdutor painel= produtor.getPainel(); this.getContentPane().setLayout(null); //aqui voce configura o layout this.getContentPane().add(painel); painel.setLocation(0,0); painel.setSize(w,h); //necessario ajustar o tamanho, usando o null this.getContentPane().repaint(); }

espero que ajude.

Criado 6 de junho de 2007
Ultima resposta 10 de jun. de 2007
Respostas 1
Participantes 2