Painel bugado

Toda vez que clico no botão btnNovo, ele adiciona um objeto JPanel à meu outro painel, se tiverem mais que 8 objetos dentro do painel ele aumenta o meu painel para caberem mais.
O problema é que eu criei um método que adiciona vários objetos de uma vez à esse painel, faço isso chamando o btnNovo.doClick(); dentro de um while. Mas ao fazer isso o painel buga e não consigo rolar todo para baixo.

O actionPerformed do btnNovo:
if (e.getSource() == btnNovo){
criaPaineis(new JPanel());
if(pnlSequencia.getComponentCount() > 9){
pnlSequencia.setPreferredSize(new Dimension (500, pnlSequencia.getHeight() + 105));
}
pnlRolagem.revalidate();

o método para adicionar vários de uma vez:
int c = contaChar(codigoDeSalvamento, ‘º’);
int p = pnlSequencia.getComponentCount();
while(p < c+1){
btnNovo.doClick();
p++;
}

Já verifiquei tudo… Não tem nada errado, até pq quando eu clico no btnNovo ele funciona normal. Mas nesse metódo o painel “come” os objetos dentro dele. Eu uso JScrollPane.

Posta o código completo.

Evite chamar o método doClick(), ao invés disso, crie um método que faz o que tem de ser feito e aí no ActionListener do botão você chama esse mesmo método.

1 curtida

Obrigado, eu resolvi criando uma lógica para alterar manualmente o tamanho do painel depois de ter adicionado todos os objetos.

mas enfim deveria funcionar do outro modo.