Introdução ao Swing Application Framework
Este guia é uma introdução ao suporte ao Swing Application Framework do NetBeans IDE 6.0.
Conteúdo
Para seguir este tutorial, você precisa dos seguintes recursos e softwares.
Introdução: Swing Application Framework no NetBeans IDE 6
O Swing Application Framework é um framework leve que simplifica a criação de aplicativos de área de trabalho Java de tamanho pequeno para médio. O framework consiste em uma biblioteca de classe Java que suporta construções de coisas como:
- Lembrança do estado entre sessões.
- Gerenciamento mais fácil de ações, incluindo a execução de tarefas em segundo plano e a especificação do comportamento de bloqueio.
- Gerenciamento de recurso aprimorado, incluindo injeção de recurso de propriedades de bean.
O IDE suporta o desenvolvimento de aplicativos baseados no Swing Application Framework das seguintes formas:
- Fornecendo o modelo de projeto de aplicação de área de trabalho Java, que contém implementações de esqueleto dos recursos de framework principais. Este modelo permite que você escolha entre os dois shells a seguir:
- Aplicativo básico. Fornece um quadro básico, alguns itens de menu de amostra, barra de status e mecanismos para gerenciar ações e recursos.
- Aplicativo de banco de dados. Fornece todos os recursos no shell Aplicativo básico mais todos os recursos necessários para um aplicativo de banco de dados simples com recursos de criação, leitura, atualização e exclusão. Consulte Construindo um aplicativo de banco de dados de área de trabalho Java para obter um exemplo de como esse shell pode ser usado.
- Integração de recursos de framework no Construtor de GUI do IDE. Os aplicativos Swing Application Framework podem ser criados no IDE como qualquer outro aplicativo Swing.
- Gerando o texto da IU da sua aplicação e outros recursos em arquivos .properties.
- Fornecendo um editor de propriedade especial para ações nas quais você associa uma ação com aceleradores de teclado, texto e uma dica de ferramenta. Além disso, você pode configurar as propriedades para quando elas são selecionadas ou ativadas e pode definir a ação a ser executada assincronamente.
- Empacotando automaticamente a biblioteca do Swing Application Framework na pasta dist/lib do projeto quando você constrói seu aplicativo no IDE.
Observação: A Plataforma NetBeans também pode ser usada como um framework de aplicativo. A diferença principal entre o Swing Application Framework e a Plataforma NetBeans é o escopo. O Swing Application Framework é mais leve e mais fácil de começar a usar. A Plataforma NetBeans é mais cheia de recursos e mais adequada para aplicações grandes e extensíveis. Para obter mais informações sobre o desenvolvimento de aplicativos baseados na Plataforma NetBeans, consulte Trilha do aprendizado da Plataforma NetBeans.
Criando um aplicativo baseado no Swing Application Framework
Para melhor tirar vantagem do suporte do IDE ao Swing Application
Framework, você precisa usar o modelo do projeto de aplicativo de área de trabalho Java.
Para criar um novo aplicativo Swing Application Framework:
- Escolha Arquivo > Novo projeto.
- Selecione a categoria Java e selecione o modelo de aplicativo de área de trabalho Java.
Clique em Próximo.

- Na página Nome e localização do assistente, preencha os campos necessários.

Se selecionar o shell Aplicativo básico, você pode clicar em Terminar para criar o projeto em seu computador e abrir o projeto na janela Projetos e na janela Arquivos.
Se você selecionar o shell Aplicativo de banco de dados, clique em Próximo para especificar a tabela de banco de dados e a configuração da visualização mestre/detalhe do banco de dados.
Os arquivos gerados incluem:
- Uma classe de aplicativo que inclui o método main(), o método startup do framework e os métodos utilitários. Essa classe estende a classe SingleFrameApplication do framework.
- Uma classe de visualização que serve como a janela principal do aplicativo. Essa classe estende a classe FrameView do framework e encapsula um JPanel. Esta classe é editável no Construtor de GUI.
- Uma janela Sobre de amostra do aplicativo.
- Arquivos .properties que conterão os recursos do aplicativo.
Criando e configurando ações
O Swing Application Framework fornece suporte para ajudar você a definir e gerenciar ações.
Para citar do Tutorial Java, "Um objeto Action é um ouvinte de ação que fornece não somente manipulação de eventos de ação, mas também manipulação centralizada do estado dos componentes de acionamento de evento de ação, tais como botões da barra de ferramentas, itens de menu, botões comuns e campos de texto. O estado que uma ação pode manipular inclui texto, ícone, mnemônico, status ativado e selecionado."
No framework, use a anotação &Action para marcar o método que serve como a implementação do método actionPerformed de Action. O framework, em seguida, usa esse método para realizar a ação determinada. Você também pode especificar vários atributos para a ação que determinam coisas como o estado ativado da ação, o comportamento de bloqueio da ação, e se a ação é executada no segundo plano.
No IDE, você pode usar a caixa de diálogo Definir ação para gerar códigos para ações, incluindo a anotação e quaisquer atributos. Na caixa de diálogo Definir ação, é possível fazer o seguinte:
- Definir um componente para usar uma ação.
- Criar ações de esqueleto.
- Configura as propriedades da interface do usuário de cada ação, tal como o nome que aparece no componente visual, texto da dica de ferramenta e atalhos de teclado.
- Criar uma propriedade Booleano para determinar se a ação está ativada.
- Criar uma propriedade Booleano para determinar se a ação está selecionada. (Isso se aplica somente a componentes que não são de menu que possuem uma propriedade selecionado, tais como botões de opção).
- Definir uma ação para executar como tarefa de segundo plano.
- Configurar uma ação para bloquear outras ações até que ela seja concluída.
Para abrir a caixa de diálogo Definir ação, faça uma das seguintes coisas:
- Clique com o botão direito do mouse em um componente e escolha Definir ação.

- Selecione um componente e clique no botão de reticências (...) ao lado de sua propriedade ação na janela Propriedades.

A caixa de diálogo Definir ação consiste nos seguintes campos:
- Definir propriedade da ação usando. Permite que você selecione editores de propriedades diferentes para definir a propriedade ação. As opções são as seguintes:
- Editor padrão. Fornece suporte visual para gerar código baseado em recursos do Swing Application framework.
- Valor a partir de componente existente. Permite que você especifique um componente do qual derivar o valor da propriedade.
- Personalizar código. Fornece uma área de texto para que você escreva manualmente o código para configurar a propriedade.
Este tópico da ajuda cobre somente as opções no editor padrão.
- Ação. Selecione uma ação na caixa de combinação para atribuir ao componente.
Somente métodos que possuem a anotação @Action são listados na caixa de combinação. Se você possui um método que deseja usar que não possui essa anotação, saia da caixa de diálogo e adicione essa anotação ao método.
Se você não tiver escrito um método para a ação, selecione Criar nova ação.
Isso permite que você indique um nome de método no campo Método da ação.
Tenha certeza de preencher o campo Texto com o texto que você deseja mostrar no componente. Quando você clica em OK para sair da caixa de diálogo, é criada uma ação de esqueleto para você.
Observação: quando você atribui uma ação a um componente, as propriedades texto, toolTipText e ícone desse componente são definidas de acordo com o que você indicou na caixa de diálogo Definir ação. Se você definiu anteriormente essas propriedades do componente, elas serão substituídas pelo que é especificado na caixa de diálogo Definir ação. Entretanto, você pode retornar para a folha de propriedades do componente e personalizar os valores que deseja para esse componente. No aplicativo que está em execução, as propriedades específicas do componente serão usadas.
- Classe da ação. Se você estiver criando uma nova ação, use esta caixa de combinação para selecionar a classe na qual colocar a ação.
- Método da ação. Se você estiver criando uma nova ação, use este campo de texto para nomear o método da ação a ser gerada.
- Tarefa de segundo plano. Se selecionada, a ação é executada em segundo plano.
Isso é útil se a ação levar muito tempo para ser concluída e você deseja que o usuário possa fazer outras coisas na IU enquanto a ação é concluída.
- Atributos, aba Básico:
- Texto. Digite o texto que deseja usar para a ação em componentes visuais, tais como botões e itens de menu.
- Dica de ferramenta. Digite qualquer texto que gostaria que aparecesse quando o usuário passasse o mouse sobre quaisquer componentes associados à ação.
- Acelerador. Fornece um atalho de teclado para a ação. Para especificar o atalho que deseja usar, selecione o campo Letra e digite o atalho como faria usando o atalho. As caixas de verificação das chaves de modificador que você usa, tais como Ctrl e Shift, são selecionadas automaticamente.
- Ícone. Se desejar, associe os ícones da ação.
Use os botões Ícone pequeno e Ícone grande para navegar para os ícones que deseja usar.
- Atributos, aba Avançado:
- Propriedade ativada. Se desejar, selecione uma propriedade de bean Booleano, cujo valor determina se a ação está ou não ativada. Se você ainda não tiver criado uma propriedade como tal, digite um nome para a propriedade no campo de texto. Depois que você clica em OK para sair da caixa de diálogo, é criada uma propriedade de esqueleto para você.
- Propriedade selecionada. Se desejar, selecione uma propriedade de bean Booleano, cujo valor determina se a ação está ou não selecionada. Esta opção só se aplica a componentes que possuem a propriedade de bean selecionado, tais como JRadioButton e JToggleButton. Depois que você clica em OK para sair da caixa de diálogo, é criada uma propriedade de esqueleto para você.
- Tipo de bloqueio. Permite que você bloqueie a interação do usuário com a interface do usuário enquanto uma tarefa está sendo concluída.
As opções na lista suspensa permitem que você defina o nível no qual o bloqueio se aplica. Por exemplo, você pode bloquear a aplicação inteira ou apenas uma janela ou componente. Os tipos de bloqueio se aplicam somente às ações que você especificou como tarefas de segundo plano.
- Título da caixa de diálogo de bloqueio. Especifique um título para a caixa de diálogo que aparece para avisar o usuário de que uma tarefa ainda não foi concluída.
- Mensagem da caixa de diálogo de bloqueio. Especifique um texto a ser mostrado na caixa de diálogo que aparece para avisar o usuário de que uma tarefa ainda não foi concluída.
Observações:
- Por padrão, os recursos da ação são armazenados em um arquivo .properties que possui o mesmo nome do arquivo .java da ação.
As chaves da propriedade são derivadas do nome da ação. Os atributos afetados são texto, dica de ferramenta, acelerador, ícone pequeno, ícone grande, título de bloqueio e mensagem de bloqueio.
- Você pode obter uma visão geral de todas as ações na janela Ações do aplicativo. Abra a janela Aplicativos, escolhendo Janela > Outro > Ações de aplicativo.
Gerenciando recursos
O Swing Application Framework simplifica a manipulação de recursos e torna possível armazenar mais coisas nos pacotes de recursos.
Quando falamos de recursos, nos referimos a objetos que são usados pelo aplicativo mas que não estão nos arquivos .java. Recursos comuns em programas Java incluem arquivos de imagem e bancos de dados. Você também pode tratar outros objetos como recursos, tais como strings, cores e fontes. Tratar strings como recursos torna muito mais fácil localizar um aplicativo. Tratar outros objetos como recursos torna possível alterar os valores desses objetos sem alterar o código .java e reconstruir o aplicativo.
Um aplicativo Swing Application Framework típico possui pacotes de recursos no nível do aplicativo e no nível da classe. Os pacotes de recursos do nível da classe possuem os mesmos nomes que suas classes
.java correspondentes exceto que eles contêm a extensão .properties. Todos esses pacotes são encapsulados por um objeto ResourceMap.
Você pode editar recursos de nível de aplicativo padrão (tal como o nome do aplicativo) na caixa de diálogo Propriedades do projeto. Quaisquer recursos de nível de aplicativo que não estejam incluídos na caixa de diálogo Propriedades do projeto (tais como recursos que você mesmo define) podem ser editados no arquivo .properties que corresponde ao nome da classe do aplicativo.
Para abrir a caixa de diálogo Propriedades do projeto, clique com o botão direito do mouse no nó do projeto e escolha Propriedades. As propriedades do aplicativo aparecem no painel Aplicativo e no painel Aplicativo de área de trabalho.
Quando você inicia um aplicativo no modelo de projeto do aplicativo de área de trabalho Java, por padrão, seu código é registrado nas conversões do Swing Application Framework para gerenciar recursos, tal como o texto da IU. Os valores das propriedades do componente que você define também são armazenados como recursos.
Você pode configurar a forma em que o código é gerado para manipular recursos.
Para definir como o código de configuração é gerado para um determinado formulário:
- Abra o formulário e alterne para a visualização Design.
- Selecione o nó do formulário raiz na janela Inspetor.

- Na janela Propriedades, selecione uma das seguintes opções na lista suspensa Gerenciamento automático de recursos.
- Desligado. Todos os valores de propriedade são codificados no arquivo .java.
- Internacionalização. O código do recurso é gerado para todas as strings, e os valores da string são armazenados em um arquivo .properties.
- Todos os recursos. O código do recurso é gerado para todas as strings, cores, fontes e ícones. Os valores dessas propriedades são armazenados em um arquivo .properties.
- Recursos + injeção. O código é gerado para que os valores do recurso sejam injetados na aplicação a partir dos arquivos .properties no tempo de execução.
Se você não quiser que o valor de uma propriedade específica seja armazenado em um arquivo .properties, clique no botão de reticências (...) ao lado da propriedade específica na janela Propriedades. Em seguida, limpe a propriedade Definir como recurso.
Projetos de framework de amostra
Se quiser ver exemplos de como o framework funciona, você pode explorar alguns projetos de amostra baseados em framework no IDE. O Visualizador Mars Rover e o Editor de documentos usam o Swing Application Framework. Esses exemplos são baseados em dois dos exemplos que vêm com a biblioteca do Swing Application Framework. Entretanto, eles foram recriados por meio do Construtor de GUIs do IDE, portanto, você pode usá-los por meio das ferramentas de design visual do IDE.
Para abrir uma dessas amostras no IDE:
- Escolha Arquivo > Novo projeto.
- Selecione as Amostras > Categoria Java. Em seguida, selecione o projeto Visualizador Mars Rover ou o projeto Editor de documentos.
- Complete o resto das etapas no assistente.
Consulte também
Para uma introdução mais geral do uso do construtor de GUIs do IDE, consulte Introdução à construção de GUIs.
Para ver como você pode usar o modelo de projeto Aplicativo de área de trabalho Java para construir um aplicativo de banco de dados com uma visualização Mestre/Detalhe, consulte Construindo um aplicativo de área de trabalho Java.
Para obter mais informações sobre Swing Application Framework, consulte https://appframework.dev.java.net/intro/index.html e http://java.sun.com/developer/technicalArticles/javase/swingappfr/.
Para obter dicas e truques gerais sobre o uso do Construtor de GUIs no NetBeans IDE, consulte Perguntas freqüentes do Editor de GUIs
e Log da Web de Patrick Keegan.
Para acessar a documentação da API do Swing Application Framework diretamente no IDE, escolha Ajuda > Referências de Javadoc > org.jdesktop.application (Swing Application Framework [JSR-296]). Você também exibir a documentação das classes do framework, clicando com o botão direito do mouse em uma classe do framework ou membro da classe no editor de código-fonte do IDE e escolhendo Mostrar Javadoc.