Bom, estou com esta duvida há dias e precisando que alguem me explique como faria isso.
Estou tentando copiar um JPanel para outro JPanel. Entenda-se “copiar” como deixar o jpanel destino identico ao de origem - com as mesmas dimensoes, cores, etc E os mesmos componentes do jpanel de origem.
EX: p2 é um JPanel vazio, e p1 é um JPanel com um botao, um label e um listbox. Ae quero que p2 fique identico a p1
Pensei que seria algo simples assim(ps: os dois JPanel estao em um JFrame):
p2 = p1;
mas nao acontecia nada. Sendo que curiosamente, o comando
System.out.println(p2.getComponentCount());
acusava que p2 tinha um componente, apesar deste componente nao aparecer.
Ae, pesquisei e achei o seguinte trecho de codigo:
[b] for(int i =0; i< p1.getComponentCount(); i++){
Component c = p1.getComponent(i);
c.setVisible(true);
p2.add©;
}
repaint(50);
validate();[/b]
Funcionou relativamente bem, apesar dos componentes nao ficarem na mesma posição do painel origem
Mas o maior problema é quando eu tento “copiar” um JPanel que nao fica no mesmo frame, ou seja:
Criei um classe que extende JPanel(NovoJPanel), instanciei esta classe e tentei copiá-la para o JPanel do Frame
[b]
NovoJPanel novo = new NovoJPanel ();
for(int i =0; i<novo.getComponentCount(); i++){
Component c = novo.getComponent(i);
c.setVisible(true);
p2.add(c);
}
repaint(50);
validate();[/b]
Alguém poderia me explicar o procedimento correto para fazer este tipo de “copia”
Grato
VENOM