Dúvida utilizando JFileChooser

Prezados, Bom dia.

Sou iniciante em Java e também aqui no fórum, gostaria de um auxílio para esclarecimento de uma dúvida.

Estou desenvolvendo um programa que converte arquivo .jrprint para .pdf. A parte da conversão do arquivo está uma beleza.

jasper = (JasperPrint) JRLoader.loadObject(?Diretorio_nomearquivo.jrprint?);
JasperExportManager.exportReportToPdfFile(jasper, " Diretorio_nomearquivo.pdf");

Tenho uma outra classe responsável pela interface gráfica que contem dois JFileChooser, um para selecionar o arquivo que pretendo converter(.jrprint) e outro para selecionar o diretório que desejo salvar o arquivo .pdf convertido.
A minha dúvida é a seguinte, como vou pegar o valor dos JtextField e passar como parâmetro para a classe responsável pela conversão para converter o arquivo selecionado e salvar no diretório selecionado.

O JFileChooser possui dois métodos que você pode usar, o getSelectedFile, que retorna apenas um arquivo selecionado e o getSelectedFiles que retorna um array de Files.

Você pode utilizar o seguinte código para pegar o endereço de um diretório:

JFileChooser jfc=new JFileChooser();
jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if(jfc.showOpenDialog(null)==JFileChooser.APPROVE_OPTION){
     String pasta=jfc.getSelectedFile().getAbsoluteFile().toString();            
     System.out.println(pasta);
}

Para pegar o endereço de um arquivo basta alterar JFileChooser.DIRECTORIES_ONLY para JFileChooser.FILES_ONLY

Clerius,

Muito obrigado, irei testar aqui e em seguida posto o resultado.

Boa Tarde,

Ainda estou com uma dúvida.

Como faço para passar o valor do JTextField do arquivo selecionado e diretório, para as variaveis da classe responsável pela conversão.

Segue classe que converterá o arquivo.

public class Conversor{
	private JasperPrint jasper;
	private String nome;
	private String dir;
	
	
	public void Conversor(){
		
	try{
	    jasper = (JasperPrint) JRLoader.loadObject(nome);
	    JasperExportManager.exportReportToPdfFile(jasper, dir);
	      
	} catch(JRException e){
		System.out.println(e);
	}
	
	}

}

Passar o valor dos txtEntrada(arquivo a ser convertido) e txtSaida(Diretório) para as variaveis nome e dir da classe acima.

Obrigado

Você pode passar os valores pelo método construtor da classe conversor, ou criando os métodos “setNome” e “setDir” e um método para executar a conversão.

Bom dia,

Ainda estou com um problema para passar os valores das variaveis entre as classes.

O código do método do evento.

public void actionPerformed(ActionEvent e) {
					String nome = txtEntrada.getText();
					String dir = txtSaida.getText();
					
					GetXSet c = new GetXSet();	
					c.setNome(nome);		
					c.setDir(dir);

					}

A classe contendo os getters e setters.

package br.com.lnd.converter.controler;

public class GetXSet {
		
	private String nome;
	private String dir;
	
	public void setNome(String entr) {
		this.nome = entr;
	}
	
	public String getNome(){
		return nome;
	}
	

	public void setDir(String saida) {
		this.dir = saida;
	}
	
	public String getDir(){
		return dir;
	}


}

A classe que será responsavel por converter o arquivo.

public class Conversor{
	private JasperPrint jasper;
	private GetXSet nome;
	private GetXSet dir;
	
	public  Conversor(){

	try{
	    jasper = (JasperPrint) JRLoader.loadObject(nome);
	    JasperExportManager.exportReportToPdfFile(jasper, dir);
	      
	} catch(JRException e){
		System.out.println(e);
	}
	
	}
}

O problema é que na classe que contém o código para converter as variáveis estão como null.

Se alguém poder me ajudar fico agradecido.

Em que lugar está a passagem do objeto

GetXSet c = new GetXSet();    
                    c.setNome(nome);          
                    c.setDir(dir);

para a classe que converte as variáveis?

Eu imagino que seja assim!?

private GetXSet nome;  
private GetXSet dir;  

[quote=nicocelli]Eu imagino que seja assim!?

private GetXSet nome; private GetXSet dir; [/quote]
Isso, para mim, é instanciar.

Por exemplo

public class EnviaParametro{
 String a = "Parametro";
 RecebeParametro rp = new RecebeParametro();
 public void sendParameter(){
  rp.recebe(a);
 }
}
public class RecebeParametro{
 String recebida;
 public void recebe(String a){
 this.recebida = a;
 System.out.println(recebida);
}
}

Entendeu?