Você está aqui: Java ::: Gerenciadores de Layout ::: GridBagLayout |
Como definir a posição (alinhar) componentes nas células de um GridBagLayout usando GridBagConstraints.anchorQuantidade de visualizações: 14956 vezes |
Por padrão, se um componente for menor que o espaço reservado a ele em uma célula de um GridBagLayout, ele será alinhado ao centro, tanto verticalmente quanto horizontalmente. Muitas vezes este não é o comportamente que queremos. Assim, podemos usar a variável GridBagConstraints.anchor para definir como o componente será alinhado na célula. Veja os valores possíveis: Valores absolutos (só um componente por célula): CENTER (padrão - centro), NORTH (cima), SOUTH (embaixo), EAST (direita), WEST (esquerda), NORTHEAST (acima e à direita), NORTHWEST (acima e à esquerda), SOUTHEAST (abaixo e à direita) e SOUTHWEST (abaixo e à esquerda). Valores relativos (mais de um componente por célula): PAGE_START, PAGE_END, LINE_START, LINE_END, FIRST_LINE_START, FIRST_LINE_END, LAST_LINE_START e LAST_LINE_END. O trecho de código abaixo mostra como alinhar botões em células que excedem seus tamanhos: import javax.swing.*; import javax.swing.border.*; import java.awt.*; public class Estudos extends JFrame{ public Estudos(){ super("Como usar a classe GridBagLayout"); // define o layout setLayout(new GridBagLayout()); // define uma borda para aumentar o espaço // entre as bordas da janela e o gerenciador // de layout ((JComponent)getContentPane()).setBorder( new EmptyBorder(10, 10, 10, 10)); // cria o GridBagConstraints GridBagConstraints gbc = new GridBagConstraints(); // controla o espaço entre os componentes // e as linhas do GridBagLayout. // aqui nós definimos 2 pixels para os // lados de cima, esquerda, inferior e direita gbc.insets = new Insets(2, 2, 2, 2); // adiciona componentes à janela // este primeiro botão ocupará três células // na primeira linha gbc.gridy = 0; // linha gbc.gridx = 0; // coluna gbc.gridwidth = 3; // três células na linha // alinha o botão à esquerda gbc.anchor = GridBagConstraints.WEST; add(new JButton("Botão 1"), gbc); gbc.gridy = 1; // linha gbc.gridx = 0; // coluna gbc.gridwidth = 1; // alinha ao centro novamente gbc.anchor = GridBagConstraints.CENTER; add(new JButton("Botão 2"), gbc); gbc.gridy = 1; // linha gbc.gridx = 1; // coluna add(new JButton("Botão 3"), gbc); gbc.gridy = 1; // linha gbc.gridx = 2; // coluna add(new JButton("Botão 4"), gbc); // este último botão ocupará três células // na terceira linha gbc.gridy = 2; // linha gbc.gridx = 0; // coluna gbc.gridwidth = 3; // três células na linha // alinha o botão à direita gbc.anchor = GridBagConstraints.EAST; add(new JButton("Botão 5"), gbc); //setSize(350, 150); pack(); // ajusta o tamanho da janela ao // dos componentes setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Java - Exercício Resolvido de Java - Usando um laço for para contar de 0 até 10 e somar todos os valores |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |