Pessoal… tava aqui tendo um pouco de reflexão a respeito dos dois metodos na hora de definir um panel no JFrame.
Vamos supor:
JPanel panel = new JPanel();
JButton botao = new JButton("Botao");
panel.add(botao);
setContentPane(panel); //Linha Importante
setVisible(true);
pack();
e…
JPanel panel = new JPanel();
JButton botao = new JButton("Botao");
panel.add(botao);
getContentPane().add(panel); //Linha Importante
setVisible(true);
pack();
Eu sempre usei do primeiro modo, mas agora tava lendo o tutorial aqui do GUJ sobre Swing, e vi que o exemplo estava assim. Pesquisei no forum, e parece que o mais “normal” é fazer dessa segunda maneira.
Bom, acompanhem meu raciocinio:
Sempre usei da primeira forma(antes de mais nada porque era a unica que eu conhecia), mas me fazia bastante sentido o JFrame vir “oco”, e eu vou lá e “colo” um JPanel nele com os seus componentes jah devidamente configurados.
Na segunda forma tudo bem, também da para intender: eu pego o Conteiner(E esse conteiner é o que? Um JPanel?) e adiciono componentes a ele. Só que eu achei estranho o “add”(adiciona), quer dizer que posso colocar mais de um JPanel ali por exemplo? Eu testei aqui, mas nao deu certo, só aparece o primeiro JPanel(e seus componentes) que eu adicionei. Eu esperava q se eu adicionasse dois JPanels ficasse 2 panels um do lado do outro meio da mesma forma que fossem dois componentes dentro de um panel com FlowLayout(ou qualquer outro layout).
Em fim, minha duvida exatamente é: Qual a diferença dos dois “modos”? Porque se deve usar um e não outro? Ou pra que serve um, e pra q serve o outro? Qual a vantagem de um pro outro?
Em fim, sou novato no Java, mas sempre que eu acho uma questão filosófica dessas eu fico me martelando. xD
Obrigado desde já!
