• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

dos.santos

[Resolvido]Layouts em Swing

7 mensagens neste tópico

Boas,

Para quem programa com Swing, que layouts costumam usar?

Assim há primeira vista e desde que tenho andado a brincar um pouco com o Swing, dos layouts que tenho experimentado, o GridBagLayout é o que mais gostei de mexer.

Dos outros, cada um pior que o outro... IMHO!  :nono1:

E mesmo com o GridBagLayout, muitas vezes não consigo o resultado que quero...

Também há o chamado "absolute positioning" , e na net já vi alguns projectos de relative layout para o Swing, mas... o que é que vocês costumam usar?

Os layouts são para já o que menos gosto em Swing.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois eu passei pelo mesmo lol tanto em Swing com em SWT visto terem os mesmos layouts, por isso agora uso sempre pontos absolutos, pode não ser o melhor mas como normalmente faço windows não resizeble serve bem :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Antes de começar a usar o Netbeans IDE usava uma combinação de layouts. Flows, GridBags, Box, todos os que estavam disponiveis eram usados.

É como criar páginas html com tabelas dentro de tabelas, é sempre preciso pensar bem o que se quer fazer, e como se vai implementar.

Actualmente como uso o Netbeans IDE, o editor de interfaces gráficas possui um novo layout que parece absoluto, mas que na realidade é relativo. Durante o desenvolvimento é tudo facilitado, parece que estou a desenvolver em delphi, é só arrastar os componentes para a área de trabalho. Durante a execução do programa o layout é que se reponsabiliza por manter a proporção e espaçamento entre os componentes de forma a que tudo fique correcto.

Se quiseres usar os layouts normais, vais ter de os usar todos para conseguires efeitos coerente. Um que apenas o JBuilder tinha, o VerticalFlow Layout, que dava imenso jeito, pode ser conseguido com a mistura entre um Box com orientação vertical e um Flow.

Quando digo que deves de usar todos tens de reparar que um painel só pode ter um layout, o que te leva a ter paineis dentro de paineis e isso é que se pode tornar confuso. Normalmente precisava sempre de fazer o desenho no papel para saber quantos paineis são precisos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens outra hipótese que é o que normalmente uso para janelas resizible que é meter os pontos absolutos de forma dinâmica ou seja com as medidas da janela posicionas os componentes, assim se aumentar a janela os componentes também se auto posicionam.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas isso dá mais trabalho que o que realmente vale :)

Janelas absolutas são uma má opção. Janelas dinâmicas onde tenhas de trabalhar com o tamnho da janela só te dará mais trabalho e verás a tua aplicação a consumir mais recursos do que o que precisa.

Os layouts são uma vantagem enorme, até ao momento os layouts provinham do AWT, o que os tronava dificeis de usar e manipular. Mas com os novos layouts que existem as coisas estão bem mais facilitadas para o programador.

Se realmente queres usar Swing talvez usar o Netbeans seja um boa opção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando digo que deves de usar todos tens de reparar que um painel só pode ter um layout, o que te leva a ter painéis dentro de painéis e isso é que se pode tornar confuso. Normalmente precisava sempre de fazer o desenho no papel para saber quantos painéis são precisos.

Pelo facto de um painel poder apenas ter um layout é que eu tento usar o GridBagLayout o máximo possível, mas o resultado final nem sempre é o que eu espero...

E já agora, paneis dentro de painéis  e painéis dentro de frames, a longo prazo não tornarão o que estares a fazer num monstro glutão de memória?

Uma coisa que tenho vindo a reparar, é a falta de documentação sobre layouts no geral pela web, ou será que isto é apenas impressão minha?

Conhecem por aí alguns links interessantes sobre esta parte do Swing?

Cumprimentos,

Miguel.

ps. IDEs mesmo IDES, sou obrigado a dispensar, programo essencialmente num portátil e não há memória que aguente esses meninos... Nada como um notepad! :)

Já estive para pensar em usar o Vim mas o tempo que teria de despender para aprender a usar aquilo neste momento não me interessa muito.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na realidada não existe muita documentação sobre layouts. Mas eu apenas uso como referência o Java Tutorial e mais nenhum por isso não te posso indicar outros tutoriais. É pena que não possas usar um IDE, o Eclipse ou o Netbeans correm bem em 256 MB de RAM, é claro que ficarão lentos mas sempre consegui viver com isso :)

Se usares mesmo um programa tipo notepad então usa o notepad++, sempre é uma ajuda.

Quanto aos paineis consumirem mais memória, depende da forma como fizeres. Mas a questão é que é muito difícil fazer algumas janelas correctamente só com um painel. E o resultado é também um papão de memória. Além de que, como disseste, muitas fezes não sai como queres.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora