Você está aqui: Java ::: Gerenciadores de Layout ::: GridBagLayout |
Usando GridBagConstraints.gridwidth para definir a quantidade de células em uma linha que um determinado componente ocuparáQuantidade de visualizações: 8437 vezes |
Muitas vezes precisamos que um determinado componente ocupe mais de uma célula na horizontal em um GridBagLayout. Isso pode ser feito com o uso de GridBagConstraints.gridwidth. Por padrão este valor é 1, ou seja, cada componente ocupará apenas uma célula na horizontal. É possível atribuir à GridBagConstraints.gridwidth os valores GridBagConstraints.REMAINDER e GridBagConstraints.RELATIVE. Se GridBagConstraints.REMAINDER for usado, o componente ocupará desde sua célula principal até a última célula na linha. Se GridBagConstraints.RELATIVE for usado, o componente ocupará desde sua célula até a célula antes da última célula na linha. O trecho de código abaixo mostra como usar GridBagConstraints.gridwidth para fazer com que componentes ocupam mais de uma célula por linha: 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 // redimensiona o botão para ocupar toda a célula gbc.fill = GridBagConstraints.HORIZONTAL; add(new JButton("Botão 1"), gbc); gbc.gridy = 1; // linha gbc.gridx = 0; // coluna gbc.gridwidth = 1; gbc.fill = GridBagConstraints.NONE; // zera o fill 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); //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); } } |
![]() |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Como listar todo o conteúdo de um diretório usando a função listFiles() da classe File do JavaQuantidade de visualizações: 17382 vezes |
Nesta dica mostrarei como podemos usar o método listFiles() da classe File da linguagem Java para listar todo o conteúdo de um diretório. Note que usei os métodos isFile() e isDirectory(), também da classe File, para indicar se o item que está sendo lido é um arquivo ou diretório. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.io.*; public class Estudos{ public static void main(String[] args){ // nome e caminho do diretório File diretorio = new File("C:\\estudos_c"); // um vetor de arquivos File[] arquivos = diretorio.listFiles(); // foram encontrados arquivos ou diretórios? if(arquivos != null){ // obtemos a quantidade de arquivos int length = arquivos.length; // e percorremos os arquivos individualmente for(int i = 0; i < length; ++i){ File f = arquivos[i]; // é um arquivo? if(f.isFile()){ System.out.println(f.getName()); } else if(f.isDirectory()){ // é um diretório System.out.println("Diretorio: " + f.getName()); } } } } } Ao executar este código Java nós teremos um resultado parecido com: DICA.txt Diretorio: estudos Estudos_C.dev Estudos_C.exe Estudos_C.layout main.c main.o Makefile.win |
Java ::: Dicas & Truques ::: Mouse e Teclado |
Java Swing - Como detectar um clique em um botão JButton e exibir uma mensagem JOptionPaneQuantidade de visualizações: 13 vezes |
Nesta dica mostrarei como podemos usar o método addActionListener() da linguagem Java para definir um evento de clique a um botão JButton. Quando o usuário clicar no botão nós vamos interceptar este evento e mostrar uma mensagem JOptionPane.showMessageDialog(). Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Estudos extends JFrame{ JButton btn; public Estudos() { super("Detectando um clique em um botão"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); btn = new JButton("Clique"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ JOptionPane.showMessageDialog(null, "Fui clicado!"); } } ); c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Java ::: Java Swing - JTable e classes relacionadas ::: JTable |
Como inserir novas colunas em uma JTable do Java Swing em tempo de execução usando o método addColumn() da classe DefaultTableModelQuantidade de visualizações: 280 vezes |
Em algumas situações nós precisamos adicionar uma ou mais colunas em uma JTable do Java Swing. Entre as formas possíveis, uma é por meio do uso da função addColumn() da classe DefaultTableModel. Este método recebe, no exemplo abaixo, uma String contendo o nome da coluna a ser criada. Veja o código completo para a aplicação Java Swing: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; public class Estudos extends JFrame{ public Estudos(){ super("Exemplo de uma tabela simples"); final DefaultTableModel modelo = new DefaultTableModel(); // constrói a tabela JTable tabela = new JTable(modelo); // Cria duas colunas modelo.addColumn("Nome"); modelo.addColumn("Idade"); JButton btn = new JButton("Adicionar Colunas"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String titulo = JOptionPane.showInputDialog( null, "Informe o título da nova coluna:"); // Adiciona uma coluna modelo.addColumn(titulo); } } ); tabela.setPreferredScrollableViewportSize( new Dimension(350, 50)); Container c = getContentPane(); c.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); c.add(btn); setSize(400, 300); 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 |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |