Você está aqui: Java ::: Gerenciadores de Layout ::: GridBagLayout |
Controlando como e se os componentes em um GridBagLayout serão redimensionados se o usuário redimensionar a janelaQuantidade de visualizações: 8328 vezes |
As variáveis GridBagConstraints.weightx e GridBagConstraints.weighty permitemcontrolar como o espaço adicional em um GridBagLayout será distribuido entre os vários componentes. São estas variáveis as responsáveis por permitir que os componentes aumentem ou encolham quando o usuário redimensionar a janela do aplicativo. Por padrão, os valores destas variáveis são 0, o que significa que os componentes não serão redimensionados juntamente com a janela. Suponhamos que você tenha cinco componentes em uma determinada linha e atribua valores 1.0 para GridBagConstraints.weightx antes de inserí-los na janela, então estes componentes serão redimensionados igualmente se a janela for redimensionada. Pense agora que você tem cinco componentes. Os quatro primeiros recebem o valor 1.0 e o último recebe 1.0. Se a janela for redimensionada, os quatro primeiros componentes serão redimensionados igualmente, enquanto o último permanece inalterado. O exemplo abaixo mostra como dois botões são redimensionados (um horizontalmente e o outro verticalmente) quando a janela é redimensionada: 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 gbc.gridy = 0; // linha gbc.gridx = 0; // coluna // redimensiona o botão para ocupar toda a célula // verticalmente gbc.fill = GridBagConstraints.VERTICAL; // se a janela for redimensionada, o primeiro // botão ocupará todo o novo espaço vertical gbc.weighty = 1.0; add(new JButton("Botão 1"), gbc); // adiciona componentes à janela gbc.gridy = 0; // linha gbc.gridx = 1; // coluna // redimensiona o botão para ocupar toda a célula // horizontalmente gbc.fill = GridBagConstraints.HORIZONTAL; // se a janela for redimensionada, o segundo // botão ocupará todo o novo espaço horizontal gbc.weighty = 0; // zera o weighty gbc.weightx = 1.0; add(new JButton("Botão 2"), gbc); 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 |