Qual gerenciador de Layout utilizar? [Resolvido]

10 respostas
gp7junior

Estou tendo sérios problemas ao gerenciar os componentes na minha Panel.

Já não sei mais qual gerenciador de Layouts utilizar.

Eu só quero um que insira os elementos um abaixo do outro.

obs: por favor, não me apontem o tutorial que tem no forum a respeito de interfaces graficas. Já sei do tutorial decorado.

obrigado.

10 Respostas

gp7junior

LuizRocha:
Saudações.

Acho que posso ajudar.
Você sabe como esses componentes são: todos cheios de frescura. Não sabem se virar sozinhos se a gente não apontar o caminho (claro)…

Hum, bem interessante a sua sugestao, mas eu ja estava usando o lindo GridLayout, contudo estava tudo muito grande com espaços sem nada dentro.

Vou tentar fazer o que voce esta dizendo.

gp7junior

LuizRocha:
Saudações.


____Existe uma solução mais óbvia: use o GridLayout. Assim: container.setLayout(new GridLayout(1,X)) onde X é o numero de linhas que a grade vai ter. O número de linhas deve ser igual ao número de componentes que ficarão “baixo a baixo”.

Desculpe mas, axo que o X deve ser o numero de colunas,

ViniGodoy

Eu geralmente uso o GridBadLayout, para praticamente tudo. Mas não faço nada na mão, uso para isso o VE. Às vezes, dentro de um GridBag, coloco na parte de baixo do form outro panel, com um flowlayout, para colocar os botões…

Existe também o Matisse no Netbeans, que vai usar um LayoutManager próprio (não me lembro o nome), que já estará presente no Java 6.

O fato é, use um construtor visual e pare de se incomodar tanto com Layouts. Não vale a pena e o resultado final fica muito melhor, portável e permitindo redimensionamento.

gp7junior

ViniGodoy:
Eu geralmente uso o GridBadLayout, para praticamente tudo. Mas não faço nada na mão, uso para isso o VE. Às vezes, dentro de um GridBag, coloco na parte de baixo do form outro panel, com um flowlayout, para colocar os botões…

Existe também o Matisse no Netbeans, que vai usar um LayoutManager próprio (não me lembro o nome), que já estará presente no Java 6.

O fato é, use um construtor visual e pare de se incomodar tanto com Layouts. Não vale a pena e o resultado final fica muito melhor, portável e permitindo redimensionamento.

O que é esse VE? onde posso fazer o download, já procurei na net mas nao encontro. a maquina que eu to eh meio lenta. Nao uso o netbeans porque ia ficar muito pesado.

ViniGodoy

Estava me referindo ao Visual Editor, do Eclilpse.

Mas estou um pouco insatisfeito com ele. O matisse me parece bem melhor. Mas qualquer IDE com construtor automático é melhor do que fazer na mão.

gp7junior

ViniGodoy:
Estava me referindo ao Visual Editor, do Eclilpse.

Mas estou um pouco insatisfeito com ele. O matisse me parece bem melhor. Mas qualquer IDE com construtor automático é melhor do que fazer na mão.

Aqui eu estava usando o eclipse mas acredita que ele ficou pesado?

dai agora eu fui para o JCreator.

E nele ainda nao axei nada parecido com um editor visual.

G

Ja tentou o jigloo… eh bem simples de usar…

falow

Guerr

guildc:
Ja tentou o jigloo… eh bem simples de usar…

falow

O Jigloo é realmente um plugin muito bom para interfaces gráficas… Em relação ao layout manager, o FormLayout mudou a minha vida… Heheheh! Dê uma olhada no framework JGoodies Forms! Vale ressaltar que o próprio Jigloo suporta o FormLayout do JGoodies.

gp7junior

problema resolvido.

utilizei o BoxLayout com a propriedade Y_AXIS.

vejam:
...
public Janela(){
	this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
	//Create a file chooser
                fc = new JFileChooser();      

.....

thanks for everybody.

Luiz_Rocha

Saudações.

Acho que posso ajudar.
Você sabe como esses componentes são: todos cheios de frescura. Não sabem se virar sozinhos se a gente não apontar o caminho (claro).

____É o seguinte: tudo vai depender do tamanho dos seus componentes. Se você usar um FlowLayout enviando FlowLayout.CENTER como argumento os componentes ficarão no centro da janela, A NÃO SER QUE o container (janela, painel, etc) seja mais largo que dois componentes os quais devam ficar um embaixo do outro - isto é, se a soma da largura deles for menor que o do container. Eles ficarão lado a lado.
____ Nesse caso você pode controlar o tamaho dos componentes ou do container usando o método setPreferredSize(), que recebe como argumento um objeto da classe Dimension. Por exemplo: componente.setPreferredSize(new Dimension(50, 200));

____Existe uma solução mais óbvia: use o GridLayout. Assim: container.setLayout(new GridLayout(1,X)) onde X é o numero de linhas que a grade vai ter. O número de linhas deve ser igual ao número de componentes que ficarão “baixo a baixo”.
____MAS EIS QUE SURGE UM PROBLEMA: os componentes ficarão do tamanho da célula. Uma coisa horrível de feia. A solução é colocar um painel cujo layout é FlowLayout (enviando FlowLayout.CENTER) como argumento. Assim os componentes ficarão no meio da célula e com o su tamanho original.

Essa é a idéia. Quem sabe você até transforma isso numa classe e facilita o trabalho.

Boa sorte.

Criado 28 de março de 2007
Ultima resposta 28 de mar. de 2007
Respostas 10
Participantes 5