Eterna briga com o Netbeans

Eu sempre trabalhei com eclipse, porém comecei a trabalhar com swing e acabei tendo q usar o netbeans, no inico estranhei um pouco o editor de código dele mas agora ja me acostumei, porém tem algo q não me acostumo é com o gerador de Forms dele q, pelo q eu sei é o melhor q tem porém eu não me acerto com ele, talvez eu q não saiba usar direito. Bom meu problema é o seguinte:

  • Quando eu monto uma tela com poucos campos, campos do mesmo tamanho e alinhados um em baixo do outro vai tranquilo, porém qdo quero colocar vários componentes numa mesma linha ele sempre quer alinhar com a linha de baixo ou a de cima, parece q ele ancora esses campos aos das linhas proximas e qdo tu meche na posição de um bagunça (literalmente) todos os outros. Daí tenho q realinahr todos novamento o q nem sempre é fácil. No fim demoro mais tempo montando telas do q programando, isso não pode ser normal, certamente deve ter um jeito mais fácil de fazer isso. Eu utilizo o Netbeans 6.1, nos forms eu uso o layout Free Design.
    Eu ja pensei em algumas alternativas:
  • Uma seria utilizar o AbsoluteLayout e setar os componentes pixel a pixel, dara mais trabalho porém ao menos vou ter a garantia q eles não vão sair todos de posição ao mecher no posicionamento de um deles.
  • A outra seria colocar vários JPanels no form do tamanho da largura do form e a altura do tamanho de um jTextField por exemplo, cada um representando uma linha, daí eu coloco os componentes dentro desses JPanels ele ira ancorar os JPanels um com o outro e não os outros componentes assim poderei mecher no posicionamento horizontal deles sem alterar os demais componentes da tela.

Alguem tem alguma idéia melhor pra me ajudar nesse problema?

Desde ja agradeço!

Danielpk7

Eu Ja utilizei o NetBeans em dois projetos desktop e acabei me adptando ao jeito do NetBeans organizar os componentes.
Uma dica que eu possa dar para talvez solucionar seu problema é você usar o NullLayout do Form assim o Netbeans permite você alinhar seus componentes da forma que quiser.

[quote=Hamses]Danielpk7

Eu Ja utilizei o NetBeans em dois projetos desktop e acabei me adptando ao jeito do NetBeans organizar os componentes.
Uma dica que eu possa dar para talvez solucionar seu problema é você usar o NullLayout do Form assim o Netbeans permite você alinhar seus componentes da forma que quiser.[/quote]

Boa tarde Hamses
Eu ja utilizei o Null Layout porém ele é parecido com o Absolute Layout, no sentido deu ter q alinhar pixel a pixel, até, pra te falar bem a verdade eu não sei a real diferença desses dois layouts, tenho até q dar uma pesquisada nisso.
Obrigado mesmo assim.

O problema do Null e do Absolute é que se o usuário diminuir a tela os componentes ficam cortados, e se ele aumentar os componentes não se mechem.

O “Free Design” (GroupLayout) é bom mas tbm não serve pra ser usado sempre, o melhor é intercalar com panels que usam o melhor de cada layout na hora certa.

Mas você pode fazer o seguinte bloquear que o usuario redimencione a tela
no construtor do JFrame você usa o seguinte metodo que não deixa ele redimencionar a tela

setResizable(false);

[quote=Hamses]Mas você pode fazer o seguinte bloquear que o usuario redimencione a tela
no construtor do JFrame você usa o seguinte metodo que não deixa ele redimencionar a tela

setResizable(false);[/quote]

Nesse caso vc está usando o Gambi Desing Pattern BulletProof
Que consiste em esconder funcionalidades do usuário para fugir de possíveis erros da aplicação. :smiley:

desciclo.pedia.ws/wiki/Gambi_Design_Patterns

[quote=Hamses]Mas você pode fazer o seguinte bloquear que o usuario redimencione a tela
no construtor do JFrame você usa o seguinte metodo que não deixa ele redimencionar a tela

setResizable(false);[/quote]

Eu sempre deixo essa opção desabilitada, meu problema, minhas telas tem aquele tamanho padrão e o usuario não pode redimencionar e nem maximizar, pois uso JInternalFrame dentro de uma tela principal e essa sim pode ser maximizada. Sendo assim acho q a melhor maneira seria usar Null Layout neh? Mesmo q tenha q posicionar pixel a pixel. A foda é ter q calcular o pixel onde começa e onde termina cada componente e mais o espaçamento para colocar o proximo, é uma chatisse isso, mas fazer oq pelo visto será o jeito…

Null leiaute tem um problema que voce possa considerar.
Como ele trabalha pixel a pixel, você não tem garantia nenhuma de que o leiaute escolhido tenha o mesmo comportamento em outras pataformas. É meio que um tiro no escuro. Não que ficará todo torto, mas não se pode garantir os alinhamentos.

Ja que usar os metodos que o java te oferece é gambiara então você pode tentar trabalhar com panel utilizando um panel para os componente que estão no top JFrame outro no panel no center JFrame e outro no South do JFrame. Assim quando o usuario redimencionar a tela os componentes serão realinhados juntos.

valeu pessoal, acho q vou mesclar null layout com free design utilizando panels mesmo.
Abraço!