Pergunta

Existe uma maneira de adicionar elementos a um GridLayout que lhes acrescenta horizontalmente em vez de verticalmente? Basicamente eu quero preencher uma linha inteira com elementos antes de começar com o próximo.

Hope eu fiz a minha pergunta clara.

Foi útil?

Solução

Eu sugeriria GridBagLayout GridBagConstraints

É muito parecido com um GridLayout, mas com GridBagConstraints você pode especificar as coordenadas x e y do componente, e você pode fazer colunas e linhas vãos.

Seria algo parecido com isto:

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

GridBagLayout layout = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();

JPanel panel = new JPanel();
JLabel label = new JLabel("foo");

panel.setLayout(layout);

c.gridx = 0;
c.gridy = 0;
panel.add(label, c);

Outras dicas

O GridLayout, como o nome sugere estabelece componentes de acordo com o número de colunas e linhas que especificado no construtor , e vai passar para a próxima linha, assim que você adicionou o número especificado de componentes.

Desde a sua pergunta, parece que um FlowLayout é mais ao longo das linhas do que você está procurando.

Editar :. Eu não sei por que, mas se você especificar o número de linhas como 0 (por exemplo new GridLayout(0, 9), parece funcionar adequadamente

Na verdade, você deve usar GroupLayout é novo (desde JDK 1.6) e bastante impressionante. Dá-lhe uma tonelada de flexibilidade no layout.

Eu suponho que você quis dizer que você quer encher todas as linhas em uma coluna antes de passar para a próxima coluna. Se assim for, então usar um gerenciador de layout personalizado

VerticalGridLayout

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top