Adicionando um Seletor de Arquivos para uma Aplicação Java

Contribuição de Petr Dvorak (Dez 2009), mantido por Alyona Stashkova

Este tutorial mostra como adicionar um seletor de arquivos na aplicação Java usando o componente javax.swing.JFileChooser. É possível codificá-lo à mão, mas utilizar o GUI Builder do NetBeans é uma maneira inteligente que economizará trabalho. Como parte do exercício, você criará uma pequena aplicação Java que carrega o arquivo .txt na Área de texto.

Você pode fazer download do projeto resultante com um seletor de arquivos.

Conteúdo

O conteúdo desta página se aplica ao NetBeans IDE 7.0 e mais recente

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

Software ou Recurso Versão Necessária
NetBeans IDE Versão 7.0 ou uma versão mais recente
Java Development Kit (JDK) Versão 6, 7 ou 8

Criando a Aplicação

Primeiro, você cria uma nova Aplicação Java:

  1. No menu principal, escolha Arquivo > Novo Projeto. Escolha a categoria Java e o tipo de projeto da Aplicação Java. Clique em Próximo.
  2. Para Nome do Projeto, digite JFileChooserDemo e especifique o local do projeto.
  3. Cancele a seleção da caixa de seleção Criar Classe Principal.

    Assistente Novo Projeto

  4. Clique em Finalizar.

Criando o Form da Aplicação

Nesta seção, você cria um contêiner JFrame e adiciona uns poucos componentes ao mesmo.

Para criar o form JFrame:

  1. Clique com o botão direito do mouse no nó Pacotes de Código-fonte e escolha Novo > Outro. Escola a categoria Forms Swing GUI e o tipo de arquivo JFrameForm. Clique em Próximo.
  2. Para Nome de Classe, digite JFileChooserDemo.
  3. Para Pacote, digite jfilechooserdemo.resources.

    O novo contêiner JFrame está sendo criado

  4. Clique em Finalizar.
  5. Na janela Propriedades, insira Aplicação de demonstração para a propriedade Título e pressione Enter para confirmar.

Para adicionar componentes ao form JFrame:

  1. Na Paleta, abra a categoria Menus Swing, selecione o componente Barra de Menus e arraste-o para o canto superior esquerdo do JFrame.

    Observação: se não vir a Paleta, selecione Janela > Paleta do menu principal.

    Barra de Menu adicionada ao form JFrame

  2. Clique com o botão direito do mouse no item Editar do componente Barra de Menus e selecione Deletar no menu de contexto.
  3. Para adicionar um item de menu que permita abrir o FileChooser a partir da aplicação em execução, na categoria Menus Swing na Paleta, selecione um novo item de menu (JMenuItem1) e arraste-o para a Barra de Menus e solte-o no item Arquivo na Barra de Menus.

    Item de Menu adicionado à Barra do Menu

    Observação: assegure-se de que a Barra de Menus esteja selecionada antes de arrastar outro item de menu para ela para que o último seja adicionado na barra de menus.

  4. Clique com o botão direito do mouse em jMenuItem1 na view Design e escolha Alterar Nome da Variável no menu de contexto. Renomeie o item como Abrir e clique em OK.
  5. Assegure-se de que o jMenuItem1 ainda esteja selecionado na view Design. Pressione a barra de Espaço para editar o texto do componente. Altere o texto para Abrir e pressione Enter para confirmar.
  6. Especifique o handler de ação para o item de menu Abrir. Clique com o botão direito do mouse no item do menu e escolha Eventos > Ação > Ação executada do menu de contexto. O GUI Builder alterna automaticamente para a view do Código-fonte e um novo método do handler de evento OpenActionPerformed() é gerado. A janela do Navegador deveria se semelhante a esta:

    Item de Menu adicionado à Barra do Menu

  7. Para adicionar um item de menu para sair do FileChoser antes da aplicação ter sido criada, alterne de volta para o modo Design, na categoria Menu Swing na Paleta, selecione um item de menu (JMenuItem1) e arraste-o para a Barra de Menus abaixo do item de menu Abrir. Observe que o realce laranja indica onde o JMenuItem1 será colocado.

    Realce

  8. Clique com o botão direito do mouse em jMenuItem1 na view Design e escolha Alterar Nome da Variável no menu de contexto. Renomeie o item como Sair e clique em OK.
  9. Assegure-se de que o jMenuItem1 ainda esteja selecionado na view Design. Pressione a barra de Espaço para editar o texto do componente. Altere o texto para Sair e pressione Enter para confirmar.
  10. Especifique o handler de ação para o item de menu Sair. Clique com o botão direito do mouse no item do menu e escolha Eventos > Ação > Ação executada do menu de contexto. O GUI Builder alterna automaticamente para a view do Código-fonte e um novo método de handler de evento é gerado, denominado ExitActionPerformed(). O nó ExitActionPerformed aparece na janela do Navegador abaixo do nó OpenActionPerformed().
  11. Para fazer com que o item de menu Sair funcione, você inclui o seguinte código-fonte no corpo do método ExitActionPerformed:
    			 System.exit(0); 
  12. Volte para o modo Design. Na categoria Controles de Swing da Paleta, arraste uma Área de Texto (JTextArea) para o form, como mostrado na figura abaixo.

    Área de Texto adicionada ao JForm

  13. Redimensione o componente adicionado para criar espaço para o texto exibido mais tarde pelo Seletor de Arquivos. Renomeie a variável para textarea. O form deve parecer com a tela a seguir:

    Aplicação Java - GUI Builder

Você precisa criar uma aplicação Java simples como base para este tutorial. Em seguida, o Seletor de Arquivos real é selecionado.

Adicionando o Seletor de Arquivos

  1. Escolha Janela > Navegação > Navegador para abrir a janela Inspetor se ela ainda não estiver aberta.
  2. No Navegador, clique com o botão direito do mouse no nó Outros Componentes. Escolha Adicionar da paleta > Janelas Swing > Seletor de Arquivos no menu de contexto

    Como uma alternativa para o menu de contexto Adicionar da Paleta, você também pode arrastar e soltar um componente JFileChooser da categoria Janelas Swing da Paleta para a área branca do GUI Builder. Isso terá o mesmo resultado, mas é um pouco mais difícil porque a exibição do JFileChooser é um pouco grande e você poderá acidentalmente inserir a janela em um dos painéis, o que não é o desejado.

  3. Um exame no Navegador confirma que um JFileChooser foi adicionado ao form.
  4. Clique com o botão direito do mouse no nó JFileChooser e renomeie a variável para fileChooser.

    Seletor de Arquivos adicionado - View do Navegador

Você adicionou um Seletor de Arquivos. A seguir, você faz o ajuste fino do Seletor de Arquivos para exibir o título que deseja, adiciona um filtro de arquivo personalizado e integra o Seletor de Arquivos em sua aplicação.

Configurando o Seletor de Arquivos

Implementando a Ação Abrir

  1. Clique para selecionar o JFileChooser na janela Inspetor e, a seguir, edite suas propriedades na caixa de diálogo Propriedades. Altere a propriedade dialogTitle para Esta é minha caixa de diálogo aberta , pressione Enter e feche a caixa de diálogo Propriedades.
  2. Clique no botão Código-fonte no GUI Builder para alternar para o modo Código-fonte. Para integrar o Seletor de Arquivos em sua aplicação, cole a seguinte snippet de código-fonte no método OPenActionPerformed existente.
    private void OpenActionPerformed(java.awt.event.ActionEvent evt) {
        int returnVal = fileChooser.showOpenDialog(this);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = fileChooser.getSelectedFile();
            try {
              // What to do with the file, e.g. display it in a TextArea
              textarea.read( new FileReader( file.getAbsolutePath() ), null );
            } catch (IOException ex) {
              System.out.println("problem accessing file"+file.getAbsolutePath());
            }
        } else {
            System.out.println("File access cancelled by user.");
        }
    } 

    Observação: Remova primeira e a última linha do snippet de código que duplicam os existentes no arquivo de código-fonte.

  3. Se o editor relata erros em seu código, clique com o botão direito do mouse em qualquer lugar no código e selecione Corrigir Importações ou pressione Ctrl+Shift+I. Na caixa de diálogo Corrigir Todas as Importações aceite os defaults para atualizar as instruções de importação e clique em OK.

Como é possível ver, o método getSelectedFile() do Seletor de Arquivos é chamado para determinar em que arquivo o usuário clicou, para que você possa trabalhar com ele. Esse exemplo lê o conteúdo do arquivo e o exibe na Área de Texto.

Implementação de um Filtro de Arquivo

Agora você precisa adicionar um filtro personalizado que faz com que o Seletor de Arquivos somente exiba arquivos *.txt.

  1. Alterne para o modo Design e selecione o fileChooser na janela Navegador.
  2. Na janela Propriedades, clique no botão de reticências ("...") ao lado da propriedade fileFilter.
  3. Na caixa de diálogo Filtro de Arquivos, selecione Código Personalizado na caixa de combinação.

    Caixa de combinação aberta

  4. Digite new MyCustomFilter() no campo de texto. Clique em OK.
  5. Para fazer com que o código personalizado funcione, você escreve uma classe interna (ou externa) MyCustomFilter que estende a classe FileFilter. Copie e cole o seguinte snippet de código no código-fonte de sua classe abaixo das instruções de importação, para criar um classe interna que implementa o filtro.
        class MyCustomFilter extends javax.swing.filechooser.FileFilter {
            @Override
            public boolean accept(File file) {
                // Allow only directories, or files with ".txt" extension
                return file.isDirectory() || file.getAbsolutePath().endsWith(".txt");
            }
            @Override
            public String getDescription() {
                // This description will be displayed in the dialog,
                // hard-coded = ugly, should be done via I18N
                return "Text documents (*.txt)";
            }
        } 

Observação: para saber como implementar filtros de arquivo comutáveis, mais inteligentes, consulte o método addChoosableFileFilter.

Executando a Aplicação

  1. Clique com o botão direito no projeto JFileChooserDemo e selecione Executar para iniciar o projeto de amostra.
  2. Na caixa de diálogo Executar Projeto, selecione a classe principal jfilechooserdemo.resources.JFileChooserDemo e clique em OK.

    Executar

  3. Na aplicação de Demonstração em execução, escolha Abrir no menu Arquivo para acionar a ação. O resultado deve ficar da seguinte forma:

    Demonstração JFileChooser - resultado

  4. Para fechar a aplicação, selecione Sair no menu Arquivo.

Examine outras janelas e caixas de diálogo úteis do Swing como o Seletor de Cores ou o Painel de Opções na Paleta GUI.


Próximas Etapas

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2015, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo