Estou com um problema,Criei uma Classe com um Método para executar o JFileChooser em um Botão Utilizando ActionListener para executala,Estou conseguindo recuperar o Valor do Arquivo que no Caso é o diretorio da imagem,mas não estou conseguindo passar o valor dela para o método de gravar no banco Segue Abaixo os Código.Oque realmente acontece é que eu não consigo pegar a variavel foto e passar para o metodo de gravação da classe Cadastra Aluno.
Classe do JFileChooser:
package factory;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;
public class SelecionaImagem {
private JFileChooser escolhefoto;
public String foto1;
public void ImagemSelecionada(){
try{
escolhefoto = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("Arquivo de Imagem","JPEG","GIF", "jpg", "gif","PNG"); //Cria um filtro
escolhefoto.setFileFilter(filter); //Altera o filtro do JFileChooser
escolhefoto.setCurrentDirectory(new File ("C://pontodeapoio/fotos"));
escolhefoto.setAccessory(new ImagePreview(escolhefoto));
escolhefoto.setDialogTitle("Selecione o Arquivo");
escolhefoto.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
escolhefoto.setAcceptAllFileFilterUsed(false);
int res = escolhefoto.showOpenDialog(null);
if(res == JFileChooser.OPEN_DIALOG)
{
//File foto = escolhefoto.getSelectedFile();
String foto = escolhefoto.getSelectedFile().getCanonicalPath().replace("\\", "/");
foto1 = foto;
//String foto = escolhefoto.getSelectedFile().getName();
System.out.println(foto);
/* String url = "jdbc:mysql://localhost:3306/test";
Connection con = (Connection) DriverManager.getConnection(url,"root","vertrigo");
String sql = "Select * From aluno1 Order by id Desc";
PreparedStatement stm = (PreparedStatement) con.prepareStatement(sql);
ResultSet rs = stm.executeQuery();
String s = rs.getString("id")+1;
JOptionPane.showMessageDialog(null,s);*/
//"UPDATE facil SET " + "imagem = '"+ foto +"'" + "WHERE id = '"+ jTextField7.getText() +"'";
//Select * From Tabela Order by NomedoCampoPrimario Desc
}
if(res == JFileChooser.CANCEL_OPTION)
{
JOptionPane.showMessageDialog(null, "Você não escolheu nenhuma imagem!","Inserir Imagem:",JOptionPane.WARNING_MESSAGE);
}
if (escolhefoto.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
// System.out.println("getCurrentDirectory(): " + escolhefoto.getCurrentDirectory());
// System.out.println("getSelectedFile() : " + escolhefoto.getSelectedFile());
} else {
System.out.println("No Selection ");
}
}catch(Exception e){
JOptionPane.showMessageDialog (null,"erro","Erro",JOptionPane.ERROR_MESSAGE);
}
}
}
Código do ActionListener que executa o Metodo do JFileChooser :
btnFoto.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
SelecionaImagem Foto = new SelecionaImagem();
Foto.ImagemSelecionada();
}
});
Esta é Classe cadastra aluno com o Action Listener Responsavel por passar os valores para o DAO
btnCadastrar_Aluno.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// instanciando a classe Aluno do pacote modelo e criando seu objeto aluno
Aluno aluno = new Aluno();
aluno.setNome(tfNome.getText());
aluno.setEndereco(tfEndereco.getText());
aluno.setBairro(tfBairro.getText());
aluno.setCidade(tfCidade.getText());
aluno.setComplemento(tfComplemento.getText());
aluno.setCep(tfCep.getText());
aluno.setCelular(tfCelular.getText());
aluno.setTelefone(tfTelefone.getText());
aluno.setDataNascimento(tfNascimento.getText());
aluno.setSexo(buttonGroup.getSelection().getActionCommand());
aluno.setImagem("");
//aluno.setSexo(tfSexo.getText());
// buttonGroup.getSelection().getActionCommand();
// fazendo a validação dos dados
if ((tfNome.getText().isEmpty()) || (tfEndereco.getText().isEmpty()) || (tfBairro.getText().isEmpty()) || (tfCidade.getText().isEmpty())|| (tfComplemento.getText().isEmpty())|| (tfCep.getText().equals(" . - "))|| (tfCelular.getText().equals("( ) - "))|| (tfTelefone.getText()=="( ) - ")|| (tfNascimento.getText()==" / / ") ) {
JOptionPane.showMessageDialog(null, "Os campos não podem retornar vazios");
}
else {
// instanciando a classe UsuarioDAO do pacote dao e criando seu objeto dao
AlunoDAO dao = new AlunoDAO();
dao.adiciona(aluno);
JOptionPane.showMessageDialog(null, "Aluno: "+tfNome.getText()+" Cadastrado com sucesso! ");
}
}
});