[Resolvido] setBounds é pra definir o lugar ou que?

9 respostas
alexandref93

é pra definir lugar, deixar retinho??? ou serve pra outra coisa??? por que não funcionou!!!

9 Respostas

fabiofalci

Tem que usar o famoso Null Layout.
Segue um link ‘bom’
http://leepoint.net/notes-java/GUI/layouts/nulllayout.html

ViniGodoy

Sim, com NullLayout ele deixa num local fixo.

Porém, é fixo mesmo. Se você aumentar ou reduzir o tamanho da janela, ou se trocar de SO, o tamanho continuará o mesmo, mesmo que ele não caiba mais na tela.

O ideal mesmo é usar os gerenciadores de layout. Eles redimensionam para você os componentes, e permitem deixar a janela maximizável/minimizável. E isso evita quebras de layout acidentais.

L

ViniGodoy:
Sim, com NullLayout ele deixa num local fixo.

Porém, é fixo mesmo. Se você aumentar ou reduzir o tamanho da janela, ou se trocar de SO, o tamanho continuará o mesmo, mesmo que ele não caiba mais na tela.

O ideal mesmo é usar os gerenciadores de layout. Eles redimensionam para você os componentes, e permitem deixar a janela maximizável/minimizável. E isso evita quebras de layout acidentais.

Quais Layout Manager voce custuma usar?

alexandref93

fabiofalci:
Tem que usar o famoso Null Layout.
Segue um link ‘bom’
http://leepoint.net/notes-java/GUI/layouts/nulllayout.html

bem, eu li ali, mais não entendi muito bem como se faz, pode dá uma ajudada??

L

alexandref93:
fabiofalci:
Tem que usar o famoso Null Layout.
Segue um link ‘bom’
http://leepoint.net/notes-java/GUI/layouts/nulllayout.html

bem, eu li ali, mais não entendi muito bem como se faz, pode dá uma ajudada??

Ele está demosntrando o uso de Null Layout.

Voce pode configurar um Panel com layout nulo fazendo simplemente:

seuPanel.setLayout(null);

Aí então você utiliza o método setBounds, com o qual voce pode posicionar seus componentes onde quiser.

No entanto, essa prática é péssima, e altamente desencorajada. O ideal é que você aprenda sobre os Layout Managers, ou Managers fora da API Java, como MigLayout (excelente).

alexandref93

Lucas Emanuel:
alexandref93:
fabiofalci:
Tem que usar o famoso Null Layout.
Segue um link ‘bom’
http://leepoint.net/notes-java/GUI/layouts/nulllayout.html

bem, eu li ali, mais não entendi muito bem como se faz, pode dá uma ajudada??

Ele está demosntrando o uso de Null Layout.

Voce pode configurar um Panel com layout nulo fazendo simplemente:

seuPanel.setLayout(null);

Aí então você utiliza o método setBounds, com o qual voce pode posicionar seus componentes onde quiser.

No entanto, essa prática é péssima, e altamente desencorajada. O ideal é que você aprenda sobre os Layout Managers, ou Managers fora da API Java, como MigLayout (excelente).

por que péssima???

então é só eu implementar setLayout no JFrame e depois ir aplicando o setBounds no elementos???

M

Porque os componentes terão sempre o mesmo tamanho e estarão sempre na mesma posição. Isso quer dizer que se o sistema operacional no qual o programa roda mudar, sua aplicação ficará literalmente horrível (botões muito grandes ou pequenos demais, textos cortados…). O mesmo acontece se LookAndFeel da aplicação mudar. Ou ainda se o usuário mudar o tema do próprio sistema. Ou até mesmo se o tamanho da fonte do sistema ou o DPI for alterado.

Resumindo: você vai fazer o teste no seu computador e vai estar perfeito. Mas caso o programa rode em qualquer outro computador que tenha qualquer configuração de exibição diferente do seu o programa estará inutilizável.

O gerenciadores de leiaute são os responsáveis por controlar todas essas informações (tamanho de fonte, resolução, LookAndFeel, etc.) e assegurar que o programa ficará parecido (e, principalmente, utilizável) em qualquer plataforma.

alexandref93

Porque os componentes terão sempre o mesmo tamanho e estarão sempre na mesma posição. Isso quer dizer que se o sistema operacional no qual o programa roda mudar, sua aplicação ficará literalmente horrível (botões muito grandes ou pequenos demais, textos cortados…). O mesmo acontece se LookAndFeel da aplicação mudar. Ou ainda se o usuário mudar o tema do próprio sistema. Ou até mesmo se o tamanho da fonte do sistema ou o DPI for alterado.

Resumindo: você vai fazer o teste no seu computador e vai estar perfeito. Mas caso o programa rode em qualquer outro computador que tenha qualquer configuração de exibição diferente do seu o programa estará inutilizável.

O gerenciadores de leiaute são os responsáveis por controlar todas essas informações (tamanho de fonte, resolução, LookAndFeel, etc.) e assegurar que o programa ficará parecido (e, principalmente, utilizável) em qualquer plataforma.

vlw pela explicação!!!

alexandref93

vou dá um pesquisada no MigLayout!!!

Criado 25 de junho de 2010
Ultima resposta 25 de jun. de 2010
Respostas 9
Participantes 5