corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

Adicionando um seletor de arquivos a um aplicativo Java

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

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

É possível baixar o que é o projeto resultante com um selecionador de arquivo.

Conteúdo

O conteúdo desta página se aplica ao NetBeans IDE 6.9 e mais recentes

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

Software ou recurso Versão necessária
NetBeans IDE Versão 6.9 ou posterior
Java Development Kit (JDK) Versão 6 ou 7

Criando a aplicação

Primeiro, você cria um novo aplicativo Java:

  1. No menu principal, escolha Arquivo > Novo projeto. Escolha a categoria Java e o tipo de projeto de aplicativo 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.
  4. Certifique-se de que a caixa de verificação Definir como projeto principal esteja selecionada.
  5. Assistente para Novo projeto
  6. Clique em Terminar.

Criando o formulário do aplicativo

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

Para criar o formulário JFrame:

  1. Clique com o botão direito do mouse no nó Pacotes de código-fonte e escolha Novo > Outro. Escola a categoria Formulários 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.
  4. Uma captura de tela do novo contêiner JFrame sendo criado
  5. Clique em Terminar.
  6. Na janela Propriedades, insira Aplicativo de demonstração para a propriedade Título e pressione Enter para confirmar.

Para adicionar componentes ao formulário 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.
  2. Nota caso você não selecione Paleta, selecione Janela > Paleta no menu principal ou pressione Ctrl+Shift+8 para abri-la.

    Uma captura de tela do Barra de menus adicionados ao formulário JFrame
  3. Clique com o botão direito do mouse no item Editar do componente Barra de menus e selecione Excluir no menu de contexto.
  4. Para adicionar um item de menu que permita abrir o FileChooser a partir do aplicativo 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.
  5. Nota: 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.

    Uma captura de tela do item de menu adicionado à barra de menus
  6. Clique com o botão direito do mouse em jMenuItem1 na vista Projeto e escolha Alterar nome da variável no menu de contexto. Renomeie o item como Sair e clique em OK.
  7. Assegure-se de que o jMenuItem1 ainda esteja selecionado na vista Projeto. Pressione a barra de espaço para editar o texto do componente. Altere o texto para Sair e pressione Enter para confirmar.
  8. Especifique o manuseador 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 Construtor de GUI alterna automaticamente para a vista do Código-fonte e um novo método de manuseador de evento OpenActionPerformed() é gerado. A janela Navegador deveria se parecer como segue:
    " class="margin-around" />Uma captura de tela do item de menu adicionado na Barra de menus			</li>
			<li>Para adicionar um item de menu para sair do FileChoser antes do aplicativo ter sido criado, alterne de volta para o modo Projeto, 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.<br> 
			<img src=
  9. Clique com o botão direito do mouse em jMenuItem1 na vista Projeto e escolha Alterar nome da variável no menu de contexto. Renomeie o item como Sair e clique em OK.
  10. Assegure-se de que o jMenuItem1 ainda esteja selecionado na vista Projeto. Pressione a barra de espaço para editar o texto do componente. Altere o texto para Sair e pressione Enter para confirmar.
  11. Especifique o manuseador 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 Construtor de GUI alterna automaticamente para a vista do Código-fonte e um novo método de manuseador de evento é gerado, denominado ExitActionPerformed(). O nó ExitActionPerformed aparece na janela Navegador abaixo do nó OpenActionPerformed().
  12. 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); 
  13. Volte para o modo Desenho. Na categoria Controles Swing da Paleta, arraste um Área de texto (JTextArea) para o formulário, como mostrado na figura abaixo.
    Uma captura de tela da Área de texto adicionada ao JForm
  14. Redimensione o componente adicionado para criar espaço para o texto exibido mais tarde pelo Seletor de arquivo. Renomeie a variável para "textarea". O formulário deve parecer com captura de tela a seguir:
  15. Aplicativos Java - Construtor GUI

Você precisa criar um aplicativo 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>Inspetor para abrir a janela Inspetor, se ela ainda não estiver aberta.
  2. No Inspetor, clique com o botão direito do mouse no nó JFrame. Escolha Adicionar da paleta > Janelas Swing > Selecionador de arquivo no menu de contexto

    Dica do Construtor de GUI: 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 Construtor de GUI. Isso terá o mesmo resultado, mas é um pouco mais difícil porque a visualizaçã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 Inspetor confirma que um JFileChooser foi adicionado ao formulário.
  4. Clique com o botão direito do mouse no nó JFileChooser e renomeie a variável para “fileChooser”.

  5. Selecionador de arquivo adicionado - Vista do Inspetor

Você adicionou um Selecionador de arquivo. A seguir, você faz o ajuste fino do Selecionador de arquivo para exibir o título que deseja, adiciona um filtro de arquivo personalizado e integra o Selecionador de arquivo em seu aplicativo.

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 Construtor GUI apara alternar para o modo Código-fonte. Para integrar o Selecionador de arquivo em seu aplicativo, cole a seguinte parte 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.");
        }
    } 
  3. Nota: Remova primeira e a última linha da amostra de código que duplicam os existentes no arquivo de código-fonte.

  4. Se o editor reportar um erro 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 importações aceite os padrões para atualizar as declarações importadas 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 Selecionador de arquivo somente exiba arquivos *.txt.

  1. Alterne para o modo Projetar e selecione o Selecionador de arquivo na janela Inspetor.
  2. Na janela Propriedades, clique no botão de reticências ("...") ao lado da propriedade Filtro de arquivo.
  3. Na caixa de diálogo Filtro de arquivo, selecione Código personalizado na caixa de combinação.
    Uma captura de tela da 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 a seguinte parte de código no código-fonte de sua classe abaixo das declaraçõ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) {
                // Permite apenas diretórios ou arquivos com a extensão ".txt"
                return file.isDirectory() || file.getAbsolutePath().endsWith(".txt");
            }
            @Override
            public String getDescription() {
                // Esta descrição será exibida na caixa de diálogo,
                // hard-coded = ugly, deve ser feito via I18N
                return "Text documents (*.txt)";
            }
        } 

Nota: para aprender como implementar filtros de arquivo inteligentes e alternáveis, examine a .

Executando o aplicativo

  1. Clique com o botão direito do mouse no projeto JFileXhooserDemo 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.
  3. No aplicativo de demonstração em execução, escolha Abrir no meu Arquivo para acionar a ação.
    O resultado deve ficar da seguinte forma:
    Demo do JFileChooser: resultado
  4. Para fechar o aplicativo, 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