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: 15038 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






