fileChooser

Quando eu faço

int returnVal = fileChooser.showOpenDialog(this);

esse “this” passado no parametro representa meu proprio fileChooser né?

showOpenDialog

public int showOpenDialog(Component parent)
throws HeadlessException
Pops up an “Open File” file chooser dialog. Note that the text that appears in the approve button is determined by the L&F.
Parameters:
[color=red]parent - the parent component of the dialog, can be null; see showDialog for details[/color]
o componente pai do diálogo, pode ser nulo
a janela do fileChooser ficará “atrelada” à janela pai.

http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JFileChooser.html#showOpenDialog(java.awt.Component)

Isso mesmo!

Esse é um exemplo de código que eu usei para fazer um botão que abra o selecionador de arquivos.
Depois que eu escolho o arquivo eu passo o caminho absoluto para um metodo que irá ler esse arquivo.

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
     
        int returnVal = fileChooser.showOpenDialog(this);
    if (returnVal == JFileChooser.APPROVE_OPTION) {
        File file = fileChooser.getSelectedFile();
        file.getAbsolutePath();
        
        leitor lendo = new leitor();
        
           
    }  

Espero ter ajudado!

[quote=wagner1308]Isso mesmo!

Esse é um exemplo de código que eu usei para fazer um botão que abra o selecionador de arquivos.
Depois que eu escolho o arquivo eu passo o caminho absoluto para um metodo que irá ler esse arquivo.

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
     
        int returnVal = fileChooser.showOpenDialog(this);
    if (returnVal == JFileChooser.APPROVE_OPTION) {
        File file = fileChooser.getSelectedFile();
        file.getAbsolutePath();
        
        leitor lendo = new leitor();
        
           
    }  

Espero ter ajudado![/quote]

Então é isso mesmo né “this” no parametro é meu proprio objeto fileChooser =D. Pois ele esta chamando o método showOpenDialog();

Não!! Não é isso não!!!

this representa a Janela (JFrame, JDialog ou JInternalPane) que está pedindo para o JFileChooser abrir.
O FileChooser então se posiciona em relação a essa janela.

[quote=ViniGodoy]Não!! Não é isso não!!!

this representa a Janela (JFrame, JDialog ou JInternalPane) que está pedindo para o JFileChooser abrir.
O FileChooser então se posiciona em relação a essa janela. [/quote]

Grande ViniGodoy, eu devo ter confundido pois provavelmente esta linha de codigo: int returnVal = fileChooser.showOpenDialog(this);
estaria sendo chamada através de um evento de um JButton. Se este button estiver na minha classe que por sua vez é um JFrame, eu poderia fazer MeuJFrame.this.

Confundi pelo fato do fileChooser estar chamando o método showOpenDialog() e passando o “this”, mas somente dentro da execuçao do metodo showOpenDialog() que o “this” representaria meu fileChooser.

Seria isso mesmo ViniGodoy?

Obrigado.

neste exemplo:

[code]import java.awt.;
import java.awt.event.
;
import java.io.;
import javax.swing.
;

public class SimpleFileChooser extends JFrame {

public SimpleFileChooser() {
super(“File Chooser Test Frame”);
setSize(350, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);

Container c = getContentPane();
c.setLayout(new FlowLayout());

JButton saveButton = new JButton("Save");
final JLabel statusbar =
             new JLabel("Output of your selection will go here");

// Create a file chooser that opens up as a Save dialog
saveButton.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent ae) {
    JFileChooser chooser = new JFileChooser();
    int option = chooser.showSaveDialog(this);
    if (option == JFileChooser.APPROVE_OPTION) {
      statusbar.setText("You saved " + ((chooser.getSelectedFile()!=null)?
                        chooser.getSelectedFile().getName():"nothing"));
    }
    else {
      statusbar.setText("You canceled.");
    }
  }
});

c.add(saveButton);
c.add(statusbar);

}

public static void main(String args[]) {
SimpleFileChooser sfc = new SimpleFileChooser();
sfc.setVisible(true);
}
}
[/code]
this representa o objeto instanciado da classe SimpleFileChooser
ou seja, do JFrame que exibirá o Diálogo

Mas neste exemplo que vc passa nao funciona somente “this”, pq ele esta dentro de uma classe anonima, teria que ser feito SimpleFileChooser.this, pra funcionar.

Não, o showOpenDialog é um método que, no primeiro parâmetro, exige a janela que vai abrir o JFileChooser.
No caso, o seu JFrame ou JDialog.

O this ali, nunca representa o JFileChooser, e sim, a classe que está abrindo o seu FileChooser. Por isso, se o código estiver dentro de um botão, você precisa fazer:
SeuFrame.this

Se o código for só um método dentro do seu JFrame, basta chamar this.

Mas ele jamais representa o próprio FileChooser.

Sim, eu entend. O codigo que o ricardo passou logo acima nao compila, pois somente eles esta usando so o this, e nao NomeDaClasse.this.