corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

Projetando um formulário Java avançado usando o GridBag Customizer

Este tutorial é a segunda série de duas partes que demonstra como projetar um formulário Java usando os recursos avançados do NetBeans IDE GridBag Customizer.
Esta série tem a intenção de ser um guia para mostrar como é possível criar o layout de seus componentes da GUI sem escrever manualmente seu código de layout e, a seguir, executar alterações adicionais em um formulário existente para implementar um layout alvo específico que seja necessário ao seu projeto.

Cada documento nesta série aborda conjuntos específicos de recursos.

O primeiro tutorial da série demonstrou como modificar um formulário Java simples, usando os recursos básicos do GridBag Customizer do NetBeans IDE. Neste tutorial você irá aprender como usar os recursos avançados do GridBag Customizer para alterar o layout do formulário existente.

Conteúdo

O conteúdo desta página se aplica ao NetBeans IDE 7.1

Para seguir este tutorial, você precisa dos seguintes recursos e softwares.

Software ou recurso Versão necessária
NetBeans IDE 7.1
Java Development Kit (JDK) Versão 6 ou 7
gbcustomizer-advanced-tutorial.zip Um arquivo com o projeto de demonstração contendo os layouts inicial e alvo do tutorial.

Observações:

  • Você pode baixar o projeto que é usado como um ponto inicial para esta série como um arquivo .zip.
  • Este tutorial concentra-se no projeto do layout somente para o recipiente. A adição de funcionalidade na GUI está fora de seu escopo.

Abrindo o projeto de exemplo

Antes de começar a efetuar o layout dos componentes com a ajuda do GridBag Customizer, faça o download do gbcustomizer-advanced-tutorial.zip, extraia o projeto GridBagCustomizerAdvancedTutorial em seu disco rígido e abra-o no NetBeans IDE.

  1. Baixe e descompacte o projeto gbcustomizer-basic-tutorial.zip em qualquer lugar no computador.
  2. Na aba Projetos do NetBeans IDE 7.1, clique em Abrir projeto no menu Arquivo (alternativamente, pressione Ctrl-Shift-O), navegue para o projeto GridBagCustomizerAdvancedTutorial que você extraiu na etapa anterior e clique em Abrir projeto. A pasta do projeto pode estar contida em uma pasta que também é chamada de GridBagCustomizerAdvancedTutorial.
  3. Expanda Pacotes de código-fonte > tutorial e clique duas vezes em ContactsAdvancedInitial.java.
    O formulário de exemplo é aberto na vista Construtor de projeto de GUI.

GridBag Customizer

Chamando o GridBag Customizer

Para exibir o GridBag Customizer, complete as seguintes etapas:

  1. Na vista Desenho, selecione o formulário JFrame.
  2. Clique com botão direito do mouse e escolha Personalizar layout.
    A caixa de diálogo Personalizar layout é aberta, como mostrado abaixo.

GridBag Customizer

Observação: Neste tutorial, o GridBagLayout já está definido. Caso você trabalhe com outro formulário, na etapa 2 acima, clique com o botão direito do mouse no formulário e escolha Definir layout > Layout do Grid Bag (isso ativa o item de menu Personalizar layout) e complete o procedimento.

Recursos avançados

Nesta seção, você usará os recursos avançados do GridBag Customizer para reorganizar os componentes do formulário ContactsAdvancedInitial de acordo com o layout alvo abaixo mostrado.

Layout alvo

Observação: Para ver o layout alvo em seu NetBeans IDE, na aba Projetos, expanda Pacotes de código-fonte > tutorial e clique duas vezes em ContactsAdvancedFinal.java.
O formulário ContactsAdvancedFinal com o layout alvo é aberto na vista de Projeto do Construtor de GUI.

Inserindo nova linha

A seção Phone de um formulário existente apresenta três entradas de telefone. Para aprimorá-lo e adicionar um campo extra de legenda e texto (por exemplo, nome do usuário Skype entre Cell Phone: e Home Phone:), crie uma nova linha aqui como segue:

  1. Na caixa de diálogo Personalizar layout, clique com o botão direito do mouse no cabeçalho da linha que contém as informações de Home Phone:.
  2. Escolha Inserir linha antes.

    Menu de contexto - Inserir linha

    Uma nova linha é adicionada tal como na figura a seguir.

    Menu de contexto - Linha inserida

Adicionando novos componentes

Para adicionar um novo rótulo e camp de texto à linha recém-adicionada, execute as seguintes etapas:

  1. Clique com o botão direito do mouse na primeira célula da linha recém adicionada.
  2. No menu de contexto, escolha Adicionar componentes > Controles do Swing > Rótulo, como mostrado abaixo.

    Menu de contexto - Adicionar rótulo

    O JLabel1 realçado é exibido na primeira célula.

  3. Clique com o botão direito do mouse na segunda célula da linha recém adicionada.
  4. No menu de contexto, escolha Adicionar componentes > Controle do Swing >Campo de texto.
    O JTextField1 realçado é exibido na segunda célula.

    Menu de contexto - jTextField1 realçado

Após os componentes terem sido adicionados, seu suas restrições do gridbag precisam ser especificadas para os alinhar com outros componentes.

Com o componente JTextField1 selecionado na Área da grade, faça o seguinte na Folha de propriedades:

  1. Na caixa de combinação Largura da grade, insira 3 e pressione Enter.
  2. Na caixa de combinação Preencher, selecione horizontal.
  3. Na caixa de combinação Ancorar, navegue para baixo e selecione Linha base.
  4. No campo de texto Espessura X, insira 1.0 e pressione Enter.

jTextField1 - Restrições especificadas

Na Área da grade, selecione o componente JLabel1 e especifique sua restrição de Âncora navegando para baixo e selecionando Linha base à direita na Folha de propriedades.

Selecione os componentes JLabel1 e JTextField1 na área da grade e clique no botão Procurar (botão Procurar) na direita do campo de texto Suplementos. A caixa de diálogo Suplementos é exibida. Insira 5 no campo de texto Top: e clique em OK.

O formulário deve se parecer como mostrado abaixo.

Restrições especificadas

Observação: O GridBag Customizer ajuda a adicionar, remover e alterar a posição dos componentes no layout. Para alterar as propriedades dos componentes no layout, como o plano de fundo ou texto, use a janela GUI Builder Design.

Para definir a exibição do texto para o JLabel1, faça o seguinte:

  1. Clique em Fechar para sair da caixa de diálogo Personalizar layout.
  2. Na vista Desenho, selecione o componente JLabel1 e pressione F2 (alternativamente, selecione Editar texto a partir do menu de contexto).
  3. Exclua o texto selecionado e insira Skype:.
  4. Pressione Enter.

Para remover o texto do componente JTextField1, complete as seguintes etapas:

  1. Na vista Desenho, selecione o componente JTextField1 e pressione F2 (alternativamente, selecione Editar texto a partir do menu de contexto).
  2. Exclua o texto selecionado e pressione Enter.

Reorganizando o layout

O GridBag Customizer pode economizar-lhe tempo e esforço ao reposicionar rapidamente os componentes do formulário como desejado.

Para alterar o layout da seção Phone e posicionar quatro campos de texto existentes de uma coluna para duas colunas com dois campos de texto, complete as seguintes etapas:

  1. Clique com o botão direito do mouse no formulário e escolha Personalizar layout a partir do menu de contexto.
  2. Na caixa de diálogo Personalizar layout, pressione Ctrl+clique nos quatro componentes JTextField para selecioná-los.
  3. Arraste a borda esquerda dos campos de texto para a esquerda e solte-os para que os campos de texto ocupem apenas a segunda coluna de grade, em outras palavras, para que eles não mais ocupem a terceira e quarta coluna de grade.

    Os campos de texto ocupam uma coluna

    O GridBag Customizer pode redimensionar diversos componentes juntos, portanto, criando espaço para a segunda coluna de campos de texto.

  4. Clique fora do formulário para cancelar a seleção dos campos de texto redimensionados.
  5. Pressione Ctrl e clique para selecionar todos os Skype: e Home Phone: dos componentes JLabel e JTextField na seção Phone.
  6. Posicione o cursor sobre a seleção e arraste-o para a direita dos dois campos superiores de texto.

    Os campos de texto estão sendo movidos para a segunda coluna

    Observação: Antes de arrastar, assegure-se de que o cursor não mudou para uma seta de duas direções, caso contrário, você redimensionará a seleção.

    Após mover os componentes, o formulário deveria se parecer com o abaixo exibido.

    Linhas extras

    Para descartar as linhas 10 e 11 redundantes, clique com o botão direito do mouse nos cabeçalhos de coluna e escolha Excluir linha a partir do menu de contexto.

    A seção Phone tornou-se mais compacta.

    Os campos de texto movidos para a segunda coluna

Para corrigir o espaço da segunda coluna aqui, faça como segue:

  1. Pressione Ctrl+Clique nos rótulos Skype: e Home Phone: para selecioná-los na Área da grade.
  2. Clique no botão Procurar (botão Procurar) à direita do campo de texto Insets.
    A caixa de diálogo Suplementos é exibida.
  3. Insira 5 no campo de texto Left: e clique em OK.

Introduzindo subcontainers

O layout com base na grade algumas vezes introduz dependências desnecessárias que precisam ser solucionadas por meio de subcontainers.

Se você clicar no botão Testar layout na barra de ferramentas (botão Testar layout ) e testar o redimensionamento horizontal do layout atual, notará que espaço indesejado é criado em torno dos botões Procurar, OK e Cancelar.

Espaço indesejado

Isso acontece porque a quarta coluna compreende os campos de texto e os botões (os componentes que deveriam crescer e os componentes que não deveriam crescer, respectivamente). É preciso modificar o layout para que o espaço adicional em torno do botão Procurar seja consumido pelos campos de texto Street e City:. O layout atual assegura que a borda direita dos campos de texto Street: e City: esteja na mesma posição vertical que a borda esquerda do campo de texto Home Phone:. Para tornar estas posições independentes, complete as seguintes etapas:

  1. Pressione Ctrl+clique no campo de texto Street: e no botão Procurar na direita para selecioná-los.
  2. Clique com o botão direito do mouse e escolha Colocar no contêiner a partir do menu de contexto.

    Incorporar no contêiner

    Depois que componentes tiverem sido incorporados em um subcontêiner, a borda entre o rótulo Home Phone: e o campo de texto não afeta mais a borda entre o campo de texto Street e o botão.

    Observação: A ação Incorporar no contêiner cria um novo subcontêiner nas células ocupadas pelos componentes selecionados. Ela move os componentes selecionados em um novo container recém incorporado, mas preserva suas posições relativas e outras restrições de layout.

Repita as duas etapas acima listadas para o campo de texto City: e para o botão Procurar à direita dele para incorporá-los em um subcontêiner como mostrado abaixo.

Fechar no contêiner

Agora você deseja corrigir o espaço indesejado em torno dos botões OK e Cancelar, como segue:

  1. Clique em Fechar para cancelar a seleção do incorporado em componentes do subcontêiner, clique com o botão direito do mouse no formulário e escolha Personalizar layout a partir do menu de contexto.
  2. Pressione Ctrl+Clique nos botões OK e Cancelar na parte inferior do formulário para selecioná-los.
  3. Clique com o botão direito do mouse e escolha Colocar no contêiner a partir do menu de contexto.
    Um novo subcontainer é criado para os dois botões.

    Botões no subcontêiner

    Observação: Nenhum dos componentes no subcontêiner é redimensionável. Portanto, eles são colocados próximos um do outro no centro do contêiner, que é a ancoragem padrão.

Para alterar a ancoragem de todo o subcontainer, complete as seguintes etapas:

  1. Assegure-se de que o subcontêiner com os botões OK e Cancelar estejam selecionados e clique no botão de seta (botão Testar layout) à direita da caixa de combinação Ancorar.
  2. Role a tela para baixo e escolha Fim da linha na lista.

    Botões ancorados no fim da linha

O layout parece bom, mas o subcontêiner com os botões OK e Cancelar ocupa somente as duas últimas células na última linha.
Caso os botões OK e
Cancelar se tornem mais largos (por exemplo, durante a tradução em outro idioma), eles empurrarão as bordas direitas dos campos de texto Work Phone: e Cell Phone:.
Para evitar este problema potencial e deixar que o subcontainer ocupe todas as células na linha inferior, selecione o subcontainer e arraste sua borda esquerda para o início da linha.

Subcontêiner redimensionado

O subcontainer ocupa todas as células na linha inferior.

Navegando entre containers

Para adicionar um componente a um subcontêiner (por exemplo, um botão Ajuda para os botões OK e Cancelar existentes), é preciso alternar do contêiner principal para o subcontêiner antes de editar seu último layout.

Complete as etapas abaixo listadas para adicionar um botão em um subcontainer existente:

  1. Clique no subcontêiner com os botões OK e Cancelar para selecioná-lo.
  2. Clique com o botão direito do mouse no contêiner para exibir o menu de contexto e escolha Desenhar este contêiner.

    Desenhando um subcontêiner

  3. Clique com o botão direito do mouse no cabeçalho da segunda coluna e escolha Inserir coluna após a partir do menu de contexto.
    Uma célula vazia para o novo botão é exibida.

    Célula vazia

  4. Clique com o botão direito do mouse na célula recém-criada e escolha Adicionar componente > Controles do Swing > Botão a partir do menu de contexto.
    Um novo botão jButton1 é adicionado.

    Novo botão adicionado

  5. Clique no botão Âncora relativa à linha base (Âncora relativa à linha base) no Personalizador de propriedades para alinhar o novo botão com os dois existentes na linha.
  6. Para verificar a aparência do contêiner principal, clique com o botão direito do mouse no subcontêiner desenhado e escolha Desenhar contêiner principal a partir do menu de contexto.

    Projetar contêiner principal

    Observação: O menu de contexto não é exibido se você clicar com o botão direito do mouse nos botões.

O desenho do layout foi concluído.
Falta uma alteração final não relativa ao layout do container.
Para renomear o botão, complete as seguintes etapas:

  1. Clique em Fechar para sair da caixa de diálogo Personalizar layout.
  2. Na vista Desenho, selecione o componente JButton1 e pressione F2 (alternativamente, selecione Editar texto a partir do menu de contexto).
  3. Exclua o texto selecionado e insira Ajuda.
  4. Pressione Enter.

    Layout final

Resumo

Neste tutorial, você modificou um formulário existente ao adicionar novos componentes, ao inserir linhas, etc. Ao desenhar o layout, você aprendeu como usar os recursos avançados do GridBag Customizer para reorganizar o layout do formulário.

Vá para Projetando um formulário Java básico usando o GridBag Customizer

início


Consulte também

Você agora completou o tutorial Projetando um formulário Java avançado usando o GridBag Customizer. Para obter informações sobre como adicionar funcionalidade às GUIs que você criar, consulte:

início