[RESOLVIDO] Problemas ao Utilizar o JFileChoose e evento JButton

Boa Tarde pessoal, estou com um problema que é o seguinte:
possuo um botão chamado “Selecionar Arquivo” que chama no seu evento
uma JFileChoose, de primeira o evento funciona normalmente só que após
Selecionar o arquivo caso eu aperte novamente no Botão "Selecionar Arquivo"
não aparece a JFileChoose. Ou seja só funciona uma vez.

Segue o evento do botão :

 private void jButtonSelecionarArquivoActionPerformed(java.awt.event.ActionEvent evt) {                                                         
        jFileChooser.setVisible(true);
        jPanelTelaPrincipal.setVisible(false);
}

Segue o evento da JFileChoose:

 private void jFileChooserActionPerformed(java.awt.event.ActionEvent evt) {                                             

        try {
            int returnVal = jFileChooser.showOpenDialog(this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                diretorio = jFileChooser.getSelectedFile().getAbsolutePath();
                jLabelDiretorio.setText(diretorio);
//--------------Guarda o nome do arquivo não o diretorio para ser utilizado por outro método "Controle Acesso"
                nomeArquivo = jFileChooser.getSelectedFile().getName();
                
                jPanelTelaPrincipal.setVisible(true);
                jButtonCancelar.setVisible(true);
                jButtonImportar.setVisible(true);
                jButtonSelecionarArquivo.setVisible(true);
                jLabelImagem1.setVisible(true);
                jLabelDiretorio.setVisible(true);
                jFileChooser.setVisible(false);
                
            }else if(returnVal == JFileChooser.CANCEL_OPTION){
                jPanelTelaPrincipal.setVisible(true);
                jButtonCancelar.setVisible(true);
                jButtonImportar.setVisible(true);
                jButtonSelecionarArquivo.setVisible(true);
                jLabelImagem1.setVisible(true);
                jLabelDiretorio.setVisible(true);
                jFileChooser.setVisible(false);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
}

:smiley:

Amigo, por que não colocar no evento do botao?

Ex:

// meu botao chama-se 'botao_seleciona_imagem'

private void botao_seleciona_imagemActionPerformed(java.awt.event.ActionEvent evt) {
            JFileChooser abrir = new JFileChooser();

// Definir Titulo da mensagem
            abrir.setDialogTitle("Selecione a imagem por favor.");

// DEfinindo caminho padrão
            String caminho_padrao = "M:";
            File pathInicial = new File(caminho_padrao);
            abrir.setCurrentDirectory(pathInicial);

// Filtro só arquivos jpeg.
            FileNameExtensionFilter filtrojpeg = new FileNameExtensionFilter("JPEG ou JPG", "JPEG", "JPG");
            abrir.addChoosableFileFilter(filtrojpeg);

// Tira a opção Todos os arquivos
            abrir.setAcceptAllFileFilterUsed(false);

            int retorno = abrir.showOpenDialog(null);
            if (retorno == JFileChooser.APPROVE_OPTION) { 
                String caminho = abrir.getSelectedFile().getAbsolutePath(); //Caminho completo
                System.out.println(caminho); //print na tela
                tf_caminho_imagem.setText(caminho); // Jogo o cominho acima num Jtextfield

            }
           // ...sequencia de codigo
        }
}

Veja se isso te ajuda…

Amigo muito obrigado funcionou perfeitamente, o código ficou assim fiz
sem o seu filtro segue:

    private void jButtonSelecionarArquivoActionPerformed(java.awt.event.ActionEvent evt) {                                                         
            JFileChooser selecionarArquivo = new JFileChooser();
            
            selecionarArquivo.setDialogTitle("Selecione o Arquivo");
            
            diretorio = "C:";
            File file = new File(diretorio);
            selecionarArquivo.setCurrentDirectory(file);
            
            int retorno = selecionarArquivo.showOpenDialog(null);
            if(retorno == JFileChooser.APPROVE_OPTION){
                
                diretorio = selecionarArquivo.getSelectedFile().getAbsolutePath();
                jLabelDiretorio.setText(diretorio);
                nomeArquivo = selecionarArquivo.getSelectedFile().getName();
            }

:smiley: Amigo se puder me explicar onde estava errando e se o aconselhável é sempre por no botão agradeço, Obrigado por me ajudar a aprender um pouco mais.

[quote=brluan]Amigo muito obrigado funcionou perfeitamente, o código ficou assim fiz
sem o seu filtro segue:

    private void jButtonSelecionarArquivoActionPerformed(java.awt.event.ActionEvent evt) {                                                         
            JFileChooser selecionarArquivo = new JFileChooser();
            
            selecionarArquivo.setDialogTitle("Selecione o Arquivo");
            
            diretorio = "C:";
            File file = new File(diretorio);
            selecionarArquivo.setCurrentDirectory(file);
            
            int retorno = selecionarArquivo.showOpenDialog(null);
            if(retorno == JFileChooser.APPROVE_OPTION){
                
                diretorio = selecionarArquivo.getSelectedFile().getAbsolutePath();
                jLabelDiretorio.setText(diretorio);
                nomeArquivo = selecionarArquivo.getSelectedFile().getName();
            }

:smiley: Amigo se puder me explicar onde estava errando e se o aconselhável é sempre por no botão agradeço, Obrigado por me ajudar a aprender um pouco mais.[/quote]

Amigo, fico feliz que tenha dado certo… é interessante o uso de metodos qdo se usa mais de um JfileChooser , fica mais pratico… assim que voltar a noite vejo seu codigo e te retorno; abçs