Java Swing Layout

petersaints

Power Member
Estou com um projecto em Java entre mãos em que tenho que criar uma GUI.

Necessitava de criar um layout de JPanels que variasse de tamanho conforme os valores iniciais introduzidos numa janela de configuração inicial. Por exemplo escolher x linhas e y colunas... Tenho andado a dar voltar mas não sei como criar isto de forma dinâmica.

Andei a ler sobre layouts mas todos obrigam a escolher o JPanels estaticamente e eu precisava era de fazer código que conforme as x linhas e y colunas gerasse a quantidade de JPanels necessários e os colocasse segundo um certo layout. Não faço a mínima ideia de como conseguir isto :(

Uso NetBeans 6.5 se vos for de alguma ajuda.

Desde já o meu obrigado ;)
 
Se o que tu pretendes é uma organização em grelha, então sugiro-te que estudes o GridLayout. Este layout manager permite organizar o conteúdo de um container (que pode ser o próprio JFrame onde vais colocar os JPanel's) sob a forma de grelha em que todas as linhas têm a mesma altura e todas as colunas têm a mesma largura.

A criação de JPanels dinamicamente é feita de forma (quase) idêntica à criação de novos objectos de uma classe qualquer. Tens de criar uma instância de JPanel e depois tens de adicioná-la a um container (usando o método add do container).

Dá uma leitura atenta neste tutorial: http://java.sun.com/docs/books/tutorial/uiswing/components/panel.html

e neste: http://java.sun.com/docs/books/tutorial/uiswing/layout/grid.html
 
Antes de mais nada.. muito obrigado pelas dicas ;)

Apesar de em parte ja ter chegado à mesma conclusão, utilização de GridLayout :P Mas ainda tenho que dominar a coisa, e penso que com o teu segundo paragrafo e com os links possa lá chegar :).

Qualquer coisa mais volto a postar... mas se mais alguém tiver algo a dizer agradeço também!

Cumps
 
Se usas o NetBeans, então cria um novo JFrame Form, atribui-lhe o layout manager GridLayout e coloca um JPanel no JFrame. Depois dá uma vista de olhos no método initComponents() que é criado automaticamente e vê como é que os componentes visuais são criados por código (o NetBeans faz basicamente isso quando desenhamos um ecrã com o Matisse).
 
Back
Topo