Permitir que não mude o diretório padrão JFileChooser

Boa Tarde Galera!
Como posso fazer para “Travar” um diretorio padrao para que o usuario nao tenha o poder de escolher um outro usando JFileChooser?
Obrigada!!!

[code]botaoExibirLog.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {

			JFileChooser chooser = new JFileChooser(new File("C:/WORKSPACE_RAD/Importacao_Planilha/Logs"));
			chooser.showOpenDialog(new Panel());

			if (chooser.getSelectedFile() != null) {
				
				File file = new File(chooser.getSelectedFile().getPath());					
									
					BufferedReader br;
					StringBuffer bufSaida = new StringBuffer();

					try {
						br = new BufferedReader(new FileReader(file));
						String linha;
						while( (linha = br.readLine()) != null ){
						bufSaida.append(linha + "\n");
					}
						br.close();
						TelaLog telaLog = new TelaLog();
						telaLog.getJTextAreaExibicao().setText(bufSaida.toString());
													
					} catch (FileNotFoundException e1) {
						JOptionPane.showMessageDialog(null, "O arquivo especificado não foi encontrado", "Mensagem", JOptionPane.ERROR_MESSAGE);
						
					} catch (IOException ex) {
						JOptionPane.showMessageDialog(null, ex.getCause(), "Mensagem", JOptionPane.ERROR_MESSAGE);
					}
			}
		}
	});[/code]

Não tem como.

Se você quer a funcionalidade de apenas selecioanr arquivos de um determinado diretório, use um JList, popule-o com os arquivos do diretório desejado e permita que o usuário selecione um dos itens da lista.

[]´s

Exemplo:

Arquivo “JFileList.java”[code]import java.io.File;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.ListSelectionModel;

/**
*

  • @author David Buzatto
    */
    public class JFileList extends JList {

    /**

    • Construtor padrão.
      */
      public JFileList() {

      /*

      • se quiser/precisar, implemente seu próprio modelo. no caso,
      • estou usando um DefaultListModel mesmo.
        */
        super( new DefaultListModel() );

      // permite seleção única
      setSelectionMode( ListSelectionModel.SINGLE_SELECTION );

    }

    /**

    • Popula o modelo da lista com FileItems, que por sua vez estão

    • relacionados aos arquivos do diretório passado por parâmetro.

    • @param directory Diretório que contém os arquivos que devem ser

    • mostrados.
      */
      public void listDirectoryFiles( File directory ) {

      // obtém o modelo
      DefaultListModel model = ( DefaultListModel ) getModel();

      // remove todos os elementos
      model.removeAllElements();

      /*

      • itera pelo arquivo passado, desde que não seja null e que seja
      • um diretório.
        */

      if ( directory != null && directory.isDirectory() ) {

       for ( File f : directory.listFiles() ) {
           
           // se o arquivo do momento não for um diretório...
           if ( !f.isDirectory() ) {
               
               // cria um FileItem e insere no modelo
               FileItem item = new FileItem( f );
               model.addElement( item );
               
           }
           
       }
      

      }

    }

    /**

    • Obtém o arquivo selecionado.
    • @return O arquivo selecionado da lista, null caso nenhum arquivo esteja
    • selecionado.
      */
      public File getSelectedFile() {
      if ( getSelectedValue() != null ) {
      return ( ( FileItem ) getSelectedValue() ).file;
      } else {
      return null;
      }
      }

    /**

    • Item de arquivo para ser exibido na lista.
      */
      private class FileItem {

      File file;

      FileItem( File file ) {
      this.file = file;
      }

      @Override
      public String toString() {
      return file.getName();
      }

    }

}[/code]
Arquivo “FrameTeste.java”[code]import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

/**
*

  • @author David Buzatto
    */
    public class FrameTeste extends JFrame {

    private JFileList jFileList;
    private JButton btn;

    public FrameTeste() {

     setTitle( "Teste Lista de Arquivos" );
     setSize( 400, 400 );
     setDefaultCloseOperation( EXIT_ON_CLOSE );
    
     jFileList = new JFileList();
     jFileList.listDirectoryFiles( new File( "C:/" ) );
    
     btn = new JButton( "Obter arquivo selecionado!" );
     btn.addActionListener( new ActionListener() {
    
         public void actionPerformed( ActionEvent e ) {
    
             File arquivoSelecionado = jFileList.getSelectedFile();
    
             if ( arquivoSelecionado != null ) {
    
                 JOptionPane.showMessageDialog(
                         null,
                         "Arquivo selecionado: " + arquivoSelecionado.getName() + "\n"
                         + "Caminho completo: " + arquivoSelecionado.getAbsolutePath(),
                         "Arquivo Selecionado", JOptionPane.INFORMATION_MESSAGE );
    
             } else {
    
                 JOptionPane.showMessageDialog(
                         null,
                         "Selecione um arquivo!",
                         "ERRO", JOptionPane.ERROR_MESSAGE );
    
             }
    
         }
    
     });
    
     add( jFileList, BorderLayout.CENTER );
     add( btn, BorderLayout.SOUTH );
    

    }

    public static void main( String[] args ) {
    new FrameTeste().setVisible( true );
    }

}[/code]
[]´s

Muito obrigada Pela Ajuda davidbuzatto :)!!!

Disponha :wink:

[]´s

Olá, fiz algumas alterações nesta classe , mas nao estou conseguindo colocar um botao ao lado no outro no rodapé. :frowning:
Se puderem me ajudar…obrigada a todos !!!

[code]package br.com.bradeseg.telas;
import java.awt.BorderLayout;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;

import br.com.bradeseg.recursos.Campos;
import br.com.bradeseg.util.Util;

public class ExibirLog extends JFrame {

/**
 * 
 */
private static final long serialVersionUID = 1L;

SimpleDateFormat sdfHora = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

private JFileList jFileList;
private JButton btnAbrir = new JButton( "Abrir" );
private JButton btnLimpar = new JButton( "Limpar" );
String dataHoraAtual=  sdfHora.format(new Date());

public ExibirLog()  {

    setTitle( "Exibição Log" );
    setSize(400,200 );
    btnAbrir.setBounds(new Rectangle(350, 124, 120, 31));
    btnLimpar.setBounds(new Rectangle(350, 124, 120, 31));
                           
    setResizable(false);
  
    jFileList = new JFileList();
    jFileList.listDirectoryFiles(new File("C:/TESTE/"));
    
    add( jFileList, BorderLayout.CENTER );      
    add( btnAbrir, BorderLayout.EAST);
    add( btnLimpar, BorderLayout.SOUTH);
    add(new  JScrollPane(jFileList)); 
    
    //WORKSPACE_RAD/Importacao_Planilha/Logs
                   
	try {
		setIconImage(ImageIO.read(getClass().getResource(Campos.IMG_ICON)));
	} catch (IOException ioException) {
	    JOptionPane.showMessageDialog(null, ioException.getCause(),"Mensagem", JOptionPane.ERROR_MESSAGE);
	}
	
	
	
	btnLimpar.addActionListener(new java.awt.event.ActionListener() {
		public void actionPerformed(java.awt.event.ActionEvent e) {	
			
			
			 File arquivoSelecionado = jFileList.getSelectedFile();
			 if ( arquivoSelecionado != null ) {
					int response = JOptionPane.showConfirmDialog(null,"Deseja excluir o arquivo de log?", "Confirmação",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
					if (response == JOptionPane.YES_OPTION) {
						 Util.removerArquivosPasta(arquivoSelecionado);
					     jFileList.listDirectoryFiles(new File("C:/TESTE/"));			
						JOptionPane.showMessageDialog(null, "Exclusão efetuada com sucesso!","Exclusão", JOptionPane.WARNING_MESSAGE);
					}    
			 }else{
				  JOptionPane.showMessageDialog(null, "Selecione um arquivo de log para exclusão","Mensagem", JOptionPane.WARNING_MESSAGE);
			 }
		}
	});
	
	
  
	btnAbrir.addActionListener( new ActionListener() {
        public void actionPerformed( ActionEvent e ) {

            File arquivoSelecionado = jFileList.getSelectedFile();

            if ( arquivoSelecionado != null ) {
            	
            	BufferedReader br;
				StringBuffer bufSaida = new StringBuffer();

				
					try {
						br = new BufferedReader(new FileReader(arquivoSelecionado.getAbsolutePath()));
						String linha;
						while( (linha = br.readLine()) != null ){
						bufSaida.append(linha + "\n");
					}
						br.close();

					} catch (FileNotFoundException e1) {
						JOptionPane.showMessageDialog(null, "O arquivo especificado não foi encontrado", "Mensagem", JOptionPane.ERROR_MESSAGE);
						
					} catch (IOException ex) {
						JOptionPane.showMessageDialog(null, ex.getCause(), "Mensagem", JOptionPane.ERROR_MESSAGE);
						
					}

                JOptionPane.showMessageDialog(
                        null,
                        "Data: " + dataHoraAtual + "\n" 
                        +"Arquivo selecionado: " + arquivoSelecionado.getName() + "\n"
                        + "Caminho completo: " + arquivoSelecionado.getAbsolutePath()+ "\n"
                        + "Causa: " + bufSaida.toString(),
                        "Log Selecionado", JOptionPane.WARNING_MESSAGE);
                
            }else {

                JOptionPane.showMessageDialog(null, "Selecione um arquivo de log","Mensagem", JOptionPane.WARNING_MESSAGE);
            }
        }

    });
    
 
}



public static void main( String[] args ) {
    new ExibirLog().setVisible( true );
}

} // @jve:decl-index=0:visual-constraint=“36,37”[/code]

[code]package br.com.bradeseg.telas;

import java.io.File;

import javax.swing.DefaultListCellRenderer;
import javax.swing.DefaultListModel;
import javax.swing.DefaultListSelectionModel;
import javax.swing.JList;
import javax.swing.ListSelectionModel;

public class JFileList extends JList {

/**
 * 
 */
private static final long serialVersionUID = 1L;

/**
 * Construtor padrão.
 */
public JFileList() {
    
    /* 
     * se quiser/precisar, implemente seu próprio modelo. no caso, 
     * estou usando um DefaultListModel.
     */
    super( new DefaultListModel() );
    
    // permite seleção única
    setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
    
}

/**
 * Popula o modelo da lista com FileItems, que por sua vez estão
 * relacionados aos arquivos do diretório passado por parâmetro.
 * 
 * @param directory Diretório que contém os arquivos que devem ser 
 * mostrados.
 */
public void listDirectoryFiles( File directory ) {
    
    // obtém o modelo
    DefaultListModel model = ( DefaultListModel ) getModel();
    
    // remove todos os elementos
    model.removeAllElements();
    
    /* 
     * itera pelo arquivo passado, desde que não seja null e que seja
     * um diretório.
     */
    
    if ( directory != null && directory.isDirectory() ) {
        
        for ( File f : directory.listFiles() ) {
            
            // se o arquivo do momento não for um diretório...
            if ( !f.isDirectory() ) {
                
                // cria um FileItem e insere no modelo
                FileItem item = new FileItem( f );
                model.addElement( item );
                
            }
            
        }
        
    }
    
}

/**
 * Obtém o arquivo selecionado.
 * 
 * @return O arquivo selecionado da lista, null caso nenhum arquivo esteja 
 * selecionado.
 */
public File getSelectedFile() {
    if ( getSelectedValue() != null ) {
        return ( ( FileItem ) getSelectedValue() ).file;
    } else {
        return null;
    }
}

/**
 * Item de arquivo para ser exibido na lista.
 */
private class FileItem {
    
    File file;
    
    FileItem( File file ) {
        this.file = file;
    }
    
    @Override
    public String toString() {
        return file.getName();
    }
    
}

}[/code]

Pq vc está inserindo o jFileList duas vezes???
Para resolver seu problema, basta criar um painel para conter os botões e então inseri-lo na área SOUTH.
Altere seu código onde os componenets estão sendo inseridos no JFrame pelo código abaixo.

[code]JPanel painelBotoes = new JPanel();
painelBotoes.add( btnAbrir );
painelBotoes.add( btnLimpar );

add( new JScrollPane( jFileList ), BorderLayout.CENTER );
add( painelBotoes, BorderLayout.SOUTH );[/code]
Note que um JPanel tem como gerenciador de layout padrão o FlowLayout, enquanto em um JFrame o gerenciador padrão é o BorderLayout.

[]´s