Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fred Ramos

adicionar foto

Recommended Posts

Boa noite pessoal! Estou fazendo um formulario que listará dados de clientes, armazenados num banco de dados.

Quero inserir a foto dos clientes, seguindo uma dica de um amigo. A dica dele foi essa:

 

http://javafree.uol.com.br/topic-888244-Erro-ao-inserir-foto-do-banco-de-dados.html&page=1#238750

 

Estou um pouco atrapalhado com qual codigo vai em qual classe, pois sou iniciante. Eu fiz assim:

 

1º) Classe do meu formulário(imagem "formulario" do anexo):

 

import java.text.ParseException;

import java.util.Calendar;

import java.util.logging.Formatter;

import javax.swing.table.DefaultTableModel;

import javax.swing.text.MaskFormatter;

import utilitarios.UtilFormat;

import utilitarios.conexao;

import javax.swing.*;

import java.util.Date;

 

 

public class cliente extends javax.swing.JFrame {

//variavel para sabermos em qual botao foi clicado

int navega = 0;

conexao con_cliente, con_cidade, con_bairro, con_logradouro;

 

//criando variaveis para mascaras

Formatter formatoCpf, formatoCep, formatoFoneRes, formatoFoneCom, formatoFoneCel, formatoDataNasc, formatoDataCad;

 

boolean primeiraVezCidade = true, primeiraVezBairro = true, primeiraVezLog = true, primeiraVezCliente = true;

//fazendo o combobox da pesquisa apenas listar os dados, e nao pesquisar.

int inicia_combo = 0;

 

String ordenacao = "nome", sexo="M";

 

MaskFormatter formatter = null;

 

 

 

/** Creates new form cad_clientes */

public cliente() {

initComponents();

 

//inicializando o con_cliente

con_cliente = new conexao();

//chamando o metodo que conecta ao banco dados

con_cliente.conecta();

 

con_cidade = new conexao();

con_cidade.conecta();

 

con_bairro = new conexao();

con_bairro.conecta();

 

con_logradouro = new conexao();

con_logradouro.conecta();

 

con_cliente.executeSQL("select * FROM cliente order by "+ordenacao);

con_cidade.executeSQL("select * FROM cidade order by nome");

con_bairro.executeSQL("select * FROM bairro order by nome");

con_logradouro.executeSQL("select * FROM logradouro order by nome");

 

try

{

while(con_cidade.resultset.next())

cb_cidade.addItem(con_cidade.resultset.getString("nome"));

while(con_bairro.resultset.next())

cb_bairro.addItem(con_bairro.resultset.getString("nome"));

while(con_logradouro.resultset.next())

tf_endereco.setText(con_logradouro.resultset.getString(2));

 

//atualiza_combobox_cliente();

con_cliente.resultset.first();

mostrar_dados();

 

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "nao localizou dados!" + erro);

}

 

preencher_jtable();

 

}//cadclientes

 

 

 

// CODIGO GERADO PELO NETBEANS QUE OMITI ">

 

 

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

// Testando o codigo de foto do forum

 

addfotoa();

}

public void addfotoa(){

JFileChooser chooser = new JFileChooser();

chooser.setApproveButtonText("Open");

try {

if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {

// Criar imagem a partir do caminho especificado pelo usuario

//-------------------------------------------------------- HÁ ERRO DAQUI PARA BAIXO, EM TODAS AS LINHAS---------------------------------

arquivoFoto = new File(chooser.getSelectedFile().getAbsolutePath());

BufferedInputStream foto = new BufferedInputStream(new FileInputStream(arquivoFoto));

byte[] fotoStream = new byte[(int)arquivoFoto.length()];

BufferedImage image = ImageIO.read(arquivoFoto);

 

//Converter imagem para tamanho do label da tela

image = ConversorImagem.redimensionarImagem(image);

 

jLaddfoto.setIcon(new ImageIcon(image));

}

} catch (IOException ex) {

//--------------------------------------------------------- HÁ ERRO DAQUI PARA CIMA, EM TODAS AS LINHAS------------------------------------

JOptionPane.showMessageDialog(null, "Erro na leitura da foto.");

}

 

 

 

}

 

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

// procedimento para atualizar codigo da cidade

if (primeiraVezCidade == false)

{

try

{

String sql = "select * from cidade Where nome like '"+cb_cidade.getSelectedItem()+"'";

con_cidade.executeSQL(sql);

con_cidade.resultset.first();

 

}

 

catch (SQLException erro)

{

JOptionPane.showMessageDialog(null,"Erro a tentar excluir o registro..."+erro);

}

}

primeiraVezCidade=false;

}

 

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

//atribuindo sexo como feminino

sexo = "F";

}

 

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

 

//fazendo o masculino ser selecionado padrao

sexo = "M";

 

}

 

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

 

if(primeiraVezBairro == false){

try{

//selecione tudo da tabela bairro desde que o nome seja igual ao campo selecionado no combobox

String sql = "select * from bairro Where nome like '"+cb_bairro.getSelectedItem()+"'";

con_bairro.executeSQL(sql);

con_bairro.resultset.first();

tf_codigo.setText(con_bairro.resultset.getString("codigo"));

 

}

catch(SQLException erro){

//JOptionPane.showMessageDialog(null, "Erro ao selecionar bairro"+ erro);

}

}

primeiraVezBairro=false;

}

 

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

// TODO add your handling code here:

}

 

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

// TODO add your handling code here:

}

 

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

// TODO add your handling code here:

}

 

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

 

con_cliente.executeSQL("select * from cliente where nome like '"+tf_pesquisa.getText()+"%' order by "+ordenacao);

preencher_jtable();

}

 

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

 

ordem_visualizacao("nome");

}

 

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

 

ordem_visualizacao("codigo");

}

 

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

 

try{

con_cliente.resultset.first();

String igual = "n";

int tamanho_pesquisa = tf_pesquisa.getText().length();

while(igual == "n")

{

String pesquisado = con_cliente.resultset.getString(2).substring(0,(tamanho_pesquisa));

if(pesquisado.equals(tf_pesquisa.getText()))

{

igual = "s";

}//if

else

con_cliente.resultset.next();

}//while

//mostrando conteudo da tabela

tf_codigo.setText(con_cliente.resultset.getString(1));

mostrar_dados();

jcb_pesquisa.setSelectedItem(tf_nome.getText());

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "Não conseguiu localizar via digitação! erro = "+erro);

}//catch

}

 

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

 

con_cidade.executeSQL("select * FROM cliente");

 

try{

while(con_cidade.resultset.next())

jcb_pesquisa.addItem(con_cidade.resultset.getString("nome"));

 

con_cidade.resultset.first();

mostrar_dados();

 

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "Erro no combobox pesquisa"+ erro);

}

 

 

 

 

 

 

if(inicia_combo == 1)

{

try{

con_cliente.resultset.first();

String igual = "n";

while(igual == "n")

{

if(con_cliente.resultset.getString(2).equals(jcb_pesquisa.getSelectedItem()))

{

igual = "s";

}//if

else

con_cliente.resultset.next();

}//while

//mostrando conteudo da tabela

tf_codigo.setText(con_cliente.resultset.getString(1));

mostrar_dados();

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "Não conseguiu localizar via Seleção no JComboBox! erro = "+erro);

}//catch

}//if inicia_combo == 1

inicia_combo = 1;

}

 

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

 

try

{

String sql ="UPDATE cliente SET nome ='"+tf_nome.getText()+"',"+

"rg = '"+tf_rg.getText()+"'," +

"cpf = '"+tf_cpf.getText()+"'," +

"data_nascimento = '"+tf_data_nascimento.getText()+"'," +

"telresidencial = '"+tf_telefone_residencial.getText()+"'," +

"telcomercial = '"+tf_telefone_comercial.getText()+"'," +

"telcelular = '"+tf_telefone_celular.getText()+"'," +

"email = '"+tf_email.getText()+"'," +

"sexo = '" +sexo+"',"+

"datacadastro = '"+tf_data_cadastro.getText()+"'," +

"obs = '"+tf_observacao.getText()+"'," +

"foto = '"+tf_foto.getText()+"'," +

"tf_endereço = '"+tf_endereco.getText()+"'," +

"numero = '"+tf_numero.getText()+"'" +

"complemento = '"+tf_complemento.getText()+"'," +

"cep = '"+tf_cep.getText()+"' where codigo = "+tf_codigo.getText();

con_cliente.statement.executeUpdate(sql);

JOptionPane.showMessageDialog(null,"Alteração realizada com sucesso!");

 

//atualiza o ResultSet

con_cliente.executeSQL("Select * from cliente order by "+ordenacao);

 

 

con_cliente.resultset.next(); //posiciona no primeiro registro

mostrar_dados(); //irá chamar a função em que irá mstrar os dados no form

//atualiza_combobox_cliente();

preencher_jtable();

}

catch (SQLException erro)

{

JOptionPane.showMessageDialog(null,"Erro a tentar Alterar o registro..."+erro);

}

 

}

 

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

 

try

{

String sql = "select * from cliente Where codigo = "+tf_codigo.getText();

con_cliente.executeSQL(sql);

con_cliente.resultset.first();

String nome = "Deletar a cliente : "+con_cliente.resultset.getString(2)+" ?";

int opcao_escolhida = JOptionPane.showConfirmDialog(null,nome,"Exclusão ",JOptionPane.YES_NO_OPTION);

if (opcao_escolhida == JOptionPane.YES_OPTION)

{

sql = "DELETE FROM cliente Where codigo ="+tf_codigo.getText();

int conseguiu_excluir = con_cliente.statement.executeUpdate(sql);

if (conseguiu_excluir == 1)

{

JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso");

//atualiza o ResultSet

con_cliente.executeSQL("Select * from cliente order by "+ordenacao);

//atualiza_combobox_cliente();

 

con_cliente.resultset.first(); //posiciona no primeiro registro

mostrar_dados(); //irá chamar a função em que irá mstrar os dados no form

}

}

else

return;

}

catch (SQLException erro)

{

JOptionPane.showMessageDialog(null,"Erro a tentar excluir o registro..."+erro);

}

}

 

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

 

try{

String sqlinsert = "insert into cliente (nome, rg, cpf, data_nascimento, telresidencial, telcomercial, telcelular, " +

"email, sexo, datacadastro, obs, foto, tf_endereco, numero, complemento, cep) values('"+

tf_nome.getText()+"','"+

tf_rg.getText()+"','"+

tf_cpf.getText()+"','"+

tf_data_nascimento.getText()+"','"+

tf_telefone_residencial.getText()+"','"+

tf_telefone_comercial.getText()+"','"+

tf_telefone_celular.getText()+"','"+

tf_email.getText()+"','"+

sexo+"','"+

tf_data_cadastro.getText()+"','"+

tf_observacao.getText()+"','"+

tf_foto.getText()+"','"+

tf_endereco.getText()+"','"+

tf_numero.getText()+"','"+

tf_complemento.getText()+"','"+

tf_cep.getText()+"')";

 

con_cliente.statement.executeUpdate(sqlinsert);

JOptionPane.showMessageDialog(null, "Dados gravados com sucesso!");

 

//atualiza o resulset

//con_cliente.resultset = con_cliente.statement.executeQuery("select * from cliente");

con_cliente.executeSQL("select * from cliente order by "+ordenacao);

//atualiza_combobox_cliente();

con_cliente.resultset.first();

mostrar_dados();

 

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "Erro ao tentar gravar os dados!" + erro);

}//catch

}

 

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

 

tf_codigo.setText("");

tf_codigo.setEditable(false);

tf_nome.setText("");

tf_nome.requestFocus();

tf_rg.setText("");

tf_cpf.setText("");

tf_data_nascimento.setText("");

tf_telefone_residencial.setText("");

tf_telefone_comercial.setText("");

tf_telefone_celular.setText("");

tf_email.setText("");

//tf_data_cadastro.setText("");

 

//inserindo data automaticamente

Date data = new Date();

String dia = ""+Calendar.DAY_OF_MONTH;

String mes = ""+Calendar.MONTH;

String ano = ""+Calendar.YEAR;

 

if(Integer.parseInt(mes)<=9){

mes = "0"+mes;

if(Integer.parseInt(dia)<=9){

dia = "0"+dia;

}

}

tf_data_cadastro.setText(dia+mes+ano);

 

//JOptionPane.showMessageDialog(null, "Data:" + dia + mes + ano);

 

 

 

tf_observacao.setText("");

tf_foto.setText("");

tf_endereco.setText("");

tf_endereco.getText();

tf_numero.setText("");

tf_complemento.setText("");

 

cb_cidade.getSelectedItem();

cb_cidade.getSelectedItem();

tf_cep.setText("");

 

}

 

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

 

try{

con_cliente.resultset.previous();

mostrar_dados();

navega = 1;

 

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "nao pode ir para o registro anterior!" + erro);

}

 

}

 

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

 

try{

con_cliente.resultset.last();

mostrar_dados();

 

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "Não foi possivel ir para o ultimo registro!" + erro);

}

}

 

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

 

try{

con_cliente.resultset.first();

mostrar_dados();

 

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "Não foi possível ir para o primeiro registro!" + erro);

}

}

 

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

 

try{

con_cliente.resultset.next();

mostrar_dados();

navega = 2;

 

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "Não foi possível ir para o próximo registro!" + erro);

}

}

 

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new cliente().setVisible(true);

}

});

}

 

// Variables declaration - do not modify

// codigo gerado pelo netbeans que omiti

 

// End of variables declaration

 

public void mostrar_dados(){

 

try{

 

tf_codigo.setText(con_cliente.resultset.getString("codigo"));

tf_nome.setText(con_cliente.resultset.getString("nome"));

tf_rg.setText(con_cliente.resultset.getString("rg"));

tf_cpf.setText(con_cliente.resultset.getString("cpf"));

tf_data_nascimento.setText(con_cliente.resultset.getString("data_nascimento"));

tf_telefone_residencial.setText(con_cliente.resultset.getString("telresidencial"));

tf_telefone_comercial.setText(con_cliente.resultset.getString("telcomercial"));

tf_telefone_celular.setText(con_cliente.resultset.getString("telcelular"));

tf_email.setText(con_cliente.resultset.getString("email"));

tf_data_cadastro.setText(con_cliente.resultset.getString("datacadastro"));

tf_observacao.setText(con_cliente.resultset.getString("obs"));

tf_foto.setText(con_cliente.resultset.getString("foto"));

tf_endereco.setText(con_cliente.resultset.getString("tf_endereco"));

//cb_endereco.setSelectedItem(con_cliente.resultset.getString("cb_endereco"));

tf_numero.setText(con_cliente.resultset.getString("numero"));

tf_complemento.setText(con_cliente.resultset.getString("complemento"));

//cb_bairro.getSelectedItem(con_cliente.resultset.getSelectedItem());

//cb_bairro.setSelectedItem(con_cliente.resultset.getString("bairro"));

//tf_cidade.setText(con_cliente.resultset.getString("tf_cidade"));

//cb_cidade.setSelectedItem(con_cliente.resultset.getString("cb_cidade"));

tf_cep.setText(con_cliente.resultset.getString("cep"));

lb_foto.setIcon(new ImageIcon("D:/fred/projetos java/j2SE/projetos/imagens/" + tf_foto.getText()));

//+ tf_foto.getText())

//atualiza_combobox_bairro();

//atualiza_combobox_cidade();

}//try

catch(SQLException erro)

{

if(navega == 1)

JOptionPane.showMessageDialog(null, "Você já está no primeiro registro!");

 

else if(navega == 2)

JOptionPane.showMessageDialog(null, "Você já está no último registro!");

 

else

JOptionPane.showMessageDialog(null, "nao localizou dados!" + erro);

navega = 0;

}

 

}//mostrar_dados

 

public void atualiza_combobox_cliente()

{

try{

jcb_pesquisa.removeAllItems();

con_cliente.executeSQL("select * from cliente order by "+ordenacao);

while(con_cliente.resultset.next())

jcb_pesquisa.addItem(con_cliente.resultset.getString(2));

 

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "nao localizou dados!" + erro);

}

}//atualiza_combobox_cliente

 

public void preencher_jtable()

{

jTable_cliente.getColumnModel().getColumn(0).setPreferredWidth(20);

jTable_cliente.getColumnModel().getColumn(1).setPreferredWidth(20);

jTable_cliente.getColumnModel().getColumn(2).setPreferredWidth(20);

jTable_cliente.getColumnModel().getColumn(3).setPreferredWidth(20);

jTable_cliente.getColumnModel().getColumn(4).setPreferredWidth(20);

jTable_cliente.getColumnModel().getColumn(5).setPreferredWidth(20);

 

 

DefaultTableModel modelo = (DefaultTableModel)jTable_cliente.getModel();

modelo.setNumRows(0);

try{

while(con_cliente.resultset.next())

modelo.addRow(new Object[]{con_cliente.resultset.getString(1), con_cliente.resultset.getString(2),

 

con_cliente.resultset.getString("email"),

con_cliente.resultset.getString("telcelular"),

con_cliente.resultset.getString("telcomercial"),

con_cliente.resultset.getString("telresidencial")});

con_cliente.resultset.first();

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "Erro ao listar os dados!" + erro);

}//catch

}//preencher_jtable

 

public void ordem_visualizacao(String ordem)

{

ordenacao = ordem;

con_cliente.executeSQL("select * from cliente order by "+ordenacao);

preencher_jtable();

//atualiza_combobox_cliente();

try

{

con_cliente.resultset.first();

}//try

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "Erro ao tentar ordenar os dados..."+ erro);

}//catch

mostrar_dados();

 

}//ordem_visualizacao

}

 

2º) Classe ConversorImagem

 

package utilitarios;

 

import java.awt.Graphics2D;

import java.awt.Image;

import java.awt.image.BufferedImage;

 

public class ConversorImagem {

 

public static int LARGURA_PADRAO = 200;

public static int ALTURA_PADRAO = 184;

 

public static BufferedImage redimensionarImagem(Image imagemOriginal) {

BufferedImage novaImagem = new BufferedImage(LARGURA_PADRAO, ALTURA_PADRAO, BufferedImage.TYPE_INT_RGB);

Graphics2D g = novaImagem.createGraphics();

g.drawImage(imagemOriginal, 0, 0, LARGURA_PADRAO, ALTURA_PADRAO, null);

g.dispose();

return novaImagem;

}

}

 

 

 

3º) Classe OperacoesComArquivos

 

package utilitarios;

 

/**

*

* @author Vivien

*/

 

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import javax.swing.JOptionPane;

 

public class OperacoesComArquivos {

 

public final static String DIRETORIO_FOTOS = System.getProperty("user.home") + "/curso java/";

 

public static void prepararDiretorioDestino() throws IOException {

// Verificar se o diretorio de fotos ja existe

File diretorioFotos = new File(DIRETORIO_FOTOS);

if (!diretorioFotos.exists()) {

diretorioFotos.mkdirs();

}

}

 

public static void copiarArquivo(File arquivoOrigem, String nomeArquivoDestino) {

try {

prepararDiretorioDestino();

 

String caminhoArquivo = DIRETORIO_FOTOS + nomeArquivoDestino;

File arquivoDestino = new File(caminhoArquivo);

 

InputStream in = new FileInputStream(arquivoOrigem);

OutputStream out = new FileOutputStream(arquivoDestino);

 

byte[] buf = new byte[1024];

int len;

while ((len = in.read(buf)) > 0) {

out.write(buf, 0, len);

}

 

in.close();

out.close();

//System.out.println("Arquivo copiado com sucesso.");

JOptionPane.showMessageDialog(null,"Arquivo copiado com sucesso.");

} catch (IOException ex) {

throw new RuntimeException("Erro no arquivo", ex);

}

}

 

 

//Read more:http://javafree.uol.com.br/topic-888244-Erro-ao-inserir-foto-do-banco-de-dados.html#ixzz2Dk9KcgiQ

 

}

 

 

pane1.jpgformulario.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia ter colocado o código em uma tag [code][/code], ia ficar bem mais fácil de te ajudar...

 

O erro na imagem mostra que você não importou a classe BufferedInputStream, coloque no inicio do código:

 

import java.io.BufferedInputStream;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.