Dúvida sobre JFrame e outros

4 respostas
I

Estou estudando Java com o Netbeans e também o bloco de notas + prompt de comando. Sou iniciante. Procuro fazer as aplicações das duas maneiras e estou com algumas dúvidas de sobre o uso do Swing:

  1. Em um JFrame, é sempre recomendável usar pelo menos um JPanel para se colocar neste os outros objetos (JButton, JTextField, etc) ?

  2. Isso também se aplicaria ao JInternalFrame ?

  3. O mesmo vale para um JDialog ?

Pelo que entendi o JPanel é como se fosse uma camada de trabalho para se colocar os objetos que compõe o JFrame.

Grato pela atenção.

4 Respostas

dudaskank

Bem, só vou conseguir responder a 1.

Na verdade, um JFrame já possui um JPanel usado para os componentes, você consegue acesso para ele usando seuJFrame.getContentPane(). Tendo acesso para ele através desse método você consegue alterar layout e outras coisas do JPanel.

Os outros dois não tenho certeza, mas acho que também vem com um JPanel criado para eles usarem… tem que ver na documentação isso.

flw

I

Eu tenho consultado o site da sun (tutoriais e API), mas como é uma linguagem nova para mim, fica meio confuso sobre o que usar e quando usar e como usar um objeto no Java.

I

Obrigado pelas dicas, acho que é falta de costume em digitar código :slight_smile: ! Mas estou começando a entender como funciona.

Luiz_Rocha

Saudações.

Você tembém pode usar um getContentPane() para acessar o painel principal de uma JInternalFrame, exatamente como num JFrame.
Só pra esclarecer: o layout padrão desse painel é FlowLayout (os componentes ficam “flutuando”, ocupando o espaço em que couberem priorizando o canto superior esquerdo).

Para a felicidade geral da nação, a mesma coisa se aplica ao JDialog. (Pelo visto, todo tipo de janela completa em java já vem com o seu containerzinho básico).
A diferença é que o layout deste é um BorderLayout (a janela é dividida em CENTER, SOUTH, NORTH, WEST e EAST, e você deve dizer em qual desses lados o seu componente ou container[painel, etc] deve ficar >> por exemplo:
meuJDialog.add(“North”, painelQualquer) ; ou meuJDialog.add( painelQualquer, BorderLayout.NORTH) ; ).

Boa sorte.

Criado 18 de janeiro de 2007
Ultima resposta 18 de jan. de 2007
Respostas 4
Participantes 3