JFileChooser + JLabel + Imagem

31 respostas
adriano_kahn
Ola pessoal... o amigo Gustavo me passou o seguinte codigo
package testes;  
  
import java.awt.Graphics2D;  
import java.awt.Image;  
import java.awt.Toolkit;  
import java.awt.image.BufferedImage;  
import java.io.ByteArrayOutputStream;  
import java.io.File;  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.PreparedStatement;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Statement;  
import javax.imageio.ImageIO;  
import javax.swing.ImageIcon;  
import javax.swing.JFileChooser;  
import javax.swing.JFrame;  
import javax.swing.JLabel;  
import javax.swing.JOptionPane;  
  
@SuppressWarnings("serial")  
public class ImagemBanco extends JFrame{  
    public static Connection connection = null;  
    public static Statement statement = null;  
    public static ResultSet resultSet = null;  
    public static PreparedStatement pstmt = null;  
      
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        new ImagemBanco().setVisible(true);  
    }  
    public ImagemBanco(){  
        try{  
            String banco="";  
            /** 
             * Conectando ao BD 
             */           
  
            banco=("jdbc:mysql://localhost/BANCO_TESTE?user=root&password=123");              
  
            Class.forName("com.mysql.jdbc.Driver");  
            connection= DriverManager.getConnection( banco );  
  
  
            JFileChooser fileChooser = new JFileChooser();  
            fileChooser.setDialogTitle("Importar imagem");  
            fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);   
            String caminhoImagem = null;  
            int a = fileChooser.showOpenDialog(null);  
            /** 
             *  Se a for igual a zero e porque o usuario clicou em salvar, se for 1 e porque clicou em cancelar 
             */  
            if (a==0)  
            {     
  
                caminhoImagem = fileChooser.getSelectedFile().getAbsolutePath();// Aqui estou pegando o nome do arquivo e o endereco dele    
  
                File input = new File(caminhoImagem);//Seleciona o arquivo do disco       
  
                //Aqui eu redimensiono a imagem a partir do file, 128x128 px    
                BufferedImage imageInput = ImageIO.read(input);    
  
                BufferedImage scaled = new BufferedImage(128, 128, BufferedImage.TYPE_INT_ARGB);  
                Graphics2D g2d = scaled.createGraphics();  
                g2d.drawImage(imageInput, 0, 0, 128, 128, null);  
                g2d.dispose();  
  
                //Crie um ByteArrayOutputStream  
                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();  
  
                //Jogue a imagem lá dentro do byteArrayOutputStream  
                ImageIO.write(scaled, "png", byteArrayOutputStream);  
                  
                //Prepara a sql e logo em seguida inser os bytes no campo parametrizado  
                pstmt = connection.prepareStatement("INSERT INTO imagens values (0,?)");// o ? significa que ainda completareios parametros que faltam  
                pstmt.setBytes(1, byteArrayOutputStream.toByteArray()); //Complemento agora, passando a posicao do parametro e o valor  
                pstmt.executeUpdate();// Insiro no BD  
  
                //Fazendo processo contrario e pegaremos a imagem do banco para exibir, primeiro vamos pegar qual foi ID gerada pela chave  
                //primaria auto incremento.  
                statement= connection.createStatement();  
                resultSet= statement.executeQuery("SELECT DISTINCT LAST_INSERT_ID() FROM imagens");          
                resultSet.next();  
                int id = resultSet.getInt(1);// Esse é a chave primaria do registro  
  
                //Carregando o resultSet com a nossa busca  
                resultSet = pstmt.executeQuery("SELECT * FROM imagens WHERE id="+id);  
                resultSet.next();  
  
                //Pegando a imagem (a partiri dos bytes que veio do banco) do registro pesquisado  
                Image img = Toolkit.getDefaultToolkit().createImage(resultSet.getBytes(2));  
  
                //Fechando a conexao  
                connection.close();  
  
                //Montando o imageIcon a partir do image  
                ImageIcon imageIcon = new ImageIcon(img);  
                  
                //Criando o grafico para mostrar o resultado  
                this.setDefaultCloseOperation(EXIT_ON_CLOSE);  
                setSize(160,172);  
                this.setLayout(null);  
                JLabel label = new JLabel();  
                label.setIcon(imageIcon);  
                label.setBounds(10,10,128,128);  
                setLocationRelativeTo(null);  
                this.add(label);  
            }  
            else{  
                System.exit(0);  
            }  
        }  
        catch(Exception ex){  
            ex.printStackTrace();  
            JOptionPane.showMessageDialog(null, "ERRO");  
        }         
    }  
}

So que eu gostaria de usar um JFrame com um Jbutton para que o JfileChooser abaixo apareça qdo pressionar o Jbutton (que estra localizado no Jframe criado anteriormente com o settitle("Carregar")) e quando selecionar a imagem no JFileChooser, ela apareca no JLabel que estara localizado no JFrame criado, só que essa parte do banco de dados que esta no codigo nao me interessa nessa parte do programa e sim posteriormente qdo tds os dados estiverem preenchidos e eu nao consigo abrir a imagem sem q de erro em algo relacionado ao banco de dados implementado no codigo... ou seja... quero tirar a parte de banco de dados do codigo e fazer as implementações visuais sitadas acima... Espero q possam me ajudar...

Abs e bons estudos a tds

31 Respostas

ViniGodoy

E você não consegue ler, entender e adaptar?

adriano_kahn

Viny… sou iniciante, entao tenho bastante dificuldade ainda, ate por isso qdo peço ajuda, peço q se possivel comente bem os códigos para que eu possa entender melhor. Entao no atual estágio de aprendizado em q estou, necessito de toda a ajuda possivel…

Abs e Bons estudos

ViniGodoy

Sim, mas onde exatamente está sua dúvida?

Já sabe montar o JFileChooser?
Ou carregar a imagem no JLabel?

ViniGodoy

Oi, por favor, responda aqui no seu tópico, não via MP.

Você pode postar então o que você tentou fazer?

adriano_kahn

É o seguinte…
pedi uma ajuda, pois gostaria de armazenar uma imagem em um campo BLOB no meu Banco de dados, que é constituído de Nome, Telefone, RG, CPF e Foto. Só que no JFrame de Cadastro eu quero colocar 4 JText para receber Nome, Telefone, RG e CPF, além de um botão com o titulo “Carregar”, para que quando eu estivesse cadastrando o cliente eu pressionasse esse botão Carregar e aparecesse um JFileChooser, aonde eu selecionaria uma imagem, preferencialmente JPG, e dentro do JFrame de cadastro existe um JLabel para receber a imagem que fosse selecionada a partir da escolha feita dentro do JFileChooser, tudo isso sem usar o Banco de Dados… E após o cadastro feito, o JFrame possuirá um botão entitulado “Gravar”, aonde estaria a conexão com o banco, para que a gravação seja feita… É mais ou menos isso, mas eu quero ir passo a passo…

Obrigado a todos e bons estudos!!!

J

É adriano kahn já reclamei aqui tb desse fato, ainda bem que não preciso mais da ajuda desse fórum!

Como é mesmo que excluo minha conta?

ViniGodoy

Então, no método do seu botão, você põe:

//Criação do FileChooser
JFileChooser fileChooser = new JFileChooser();    
fileChooser.setDialogTitle("Importar imagem");    
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); 

//Abre a caixa para escolher a imagem
if (fileChooser.showOpenDialog(this) != JOptionPane.APPROVE_OPTION)
   return; 

//Agora, carregamos a imagem selecionada num JLabel
seuLabel.setIcon(new ImageIcon(fileChooser.getSelectedFile());
Para a gravação passo-a-passo, você pode obter a imagem que está dentro do JLabel com o comando:
Image image = ((ImageIcon)suaLabel.getIcon()).getImage();

Depois é só usar o código que já está no seu post para gravar no banco.

ViniGodoy

Jingo:
É adriano kahn já reclamei aqui tb desse fato, ainda bem que não preciso mais da ajuda desse fórum!
Como é mesmo que excluo minha conta?

Engraçado, olhando o seu histórico, deu pra ver que em boa parte dos seus tópicos você foi muito bem ajudado. Por que ao invés de entrar aqui só para reclamar, você não ajudou o colega?

Não existe a opção de excluir conta. Simplesmente pare de frequentar o fórum. Eu vou continuar ajudando gente por aqui, e pela freqüência e a atividade das pessoas do fórum, tenho certeza de que estamos fazendo um ótimo trabalho.

É bom lembrar que ninguém aqui tem a obrigação de responder a dúvidas, muito menos de dar códigos fontes completos, compilados e testados. O fórum é um local para trocar idéias e experiências. Quando percebo que o usuário é iniciante eu, pelo menos, tento estimula-lo a aprender e entender o que está fazendo, não simplesmente entregar uma solução.

J

Eu jamais pegaria o código pronto, só seu eu quisesse matar minha aplicação; nunca vi tanta gambiarra.

E vê se conserta esse fórum e coloca uma opção de exclusão, não entendo qual é a dificuldade de fazer algo tão simples, precisa de ajuda? Faz um tópico: “Como adicionar a função de exclusão de perfil?”.

ViniGodoy

Jingo:
Eu jamais pegaria o código pronto, só seu eu quisesse matar minha aplicação; nunca vi tanta gambiarra.

E vê se conserta esse fórum e coloca uma opção de exclusão, não entendo qual é a dificuldade de fazer algo tão simples, precisa de ajuda? Faz um tópico: “Como adicionar a função de exclusão de perfil?”.

Eu não programo o fórum. O GUJ usa o JForum.
Se você não gosta dessa característica, pode se tornar um implementador do projeto e atualiza-lo.

Não entendi ainda, fora o fato de não poder excluir a conta, qual é a sua reclamação? Está nervoso com o que?

J

Num tô nervoso… tô sussa.

Agora é culpa do JForum…

ViniGodoy

Jingo:
É adriano kahn já reclamei aqui tb desse fato, ainda bem que não preciso mais da ajuda desse fórum!

Como é mesmo que excluo minha conta?

Ok, então do que você está falando? E por que quer excluir sua conta?

Não é questão de ser ou não ser culpa do JForum. A questão é que eu tenho tanta autonomia para corrigir o GUJ quanto você.

adriano_kahn

Oi Viny…
carregar o filechooser foi tranks mas o Jlabel n mostra a imagem…
eu tenho de usar o codigo abaixo

//Agora, carregamos a imagem selecionada num JLabel seuLabel.setIcon(new ImageIcon(fileChooser.getSelectedFile());

na sequencia que vc passou dentro do evento do botão carregar né…?

abs e bons estudos

ViniGodoy

Sim. Ah, acabei de ver, não tem um construtor que aceita um file.

Basta fazer assim, então:

seuLabel.setIcon(new ImageIcon(fileChooser.getSelectedFile().getPath());
adriano_kahn

ainda ta dando um erro na seguinte linha
[code]if (fileChooser.showOpenDialog(this) != JOptionPane.APPROVE_OPTION)[code]

e os resultados dos erros são os seguintes:

run:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - incompatible types
required: boolean
found: int
at bancoswing1.Principal.jButton_CarregarActionPerformed(Principal.java:122)
at bancoswing1.Principal.access$200(Principal.java:23)
at bancoswing1.Principal$3.actionPerformed(Principal.java:63)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 11 segundos)

obrigado e sucesso a todos

adriano_kahn
oi Viny... o Codigo esta da seguinte maneira...
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        JFileChooser fileChooser = new JFileChooser();
        fileChooser.setDialogTitle("Importar imagem");
        fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

        if (fileChooser.showOpenDialog(this) != JFileChooser.APPROVE_OPTION)
        {
            return;
            jLabel1.setIcon(new ImageIcon(fileChooser.getSelectedFile().getPath()));
        }
    }
Só que aparece o seguinte erro na linha
jLabel1.setIcon(new ImageIcon(fileChooser.getSelectedFile().getPath()));

Unreachable Stamement

procurei por esse erro e alguns disseram que pode ocorrer se a linha não vier depois de um return, o q n á o caso...

Obrigado e bons estudos

adriano_kahn
Viny... Muito obrigado... Finalmente consegui com o seguinte código abaixo...
private void jButton_CarregarActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        //Criação do FileChooser
        JFileChooser fileChooser = new JFileChooser();
        fileChooser.setDialogTitle("Importar imagem");
        fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
       // int a = fileChooser.showOpenDialog(null);

        if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION)
        {
            //return;
            jLabel1.setIcon(new ImageIcon(fileChooser.getSelectedFile().getPath()));
        }
//Abre a caixa para escolher a imagem

        
    }

Fiz algumas alterações em relação ao código que vc me enviou, mas seu código foi de grande valia...
Com essas alterações que fiz, esse código descrito acima possui alguma coisa que pode dar errado, ou algo a mais que eu tivesse que implementar?

Obrigado e bons estudos!!!

adriano_kahn
agora o que esta matando é a conexao com o banco... pois meu codigo no banco se encontra dessa maneira descrita abaixo:
private void jButton_GravarActionPerformed(java.awt.event.ActionEvent evt) {                                               
        //fazer a conexao com o mysql
        java.sql.Connection con;
        try
        {
            Class.forName("org.gjt.mm.mysql.Driver");
            con = java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/db_aulas", "root","123");
        }
        catch (Exception e)
        {
            e.printStackTrace();
            throw new java.lang.RuntimeException("erro ao conectar");
        }



        //Inserindo Dados
        String nome = this.jTextField_Nome.getText();
        String telefone = this.jTextField_Telefone.getText();
        String rg = this.jTextField_RG.getText();
        String cpf = this.jTextField_CPF.getText();
       
        

        String comando = "insert into Cliente (nome, telefone, rg, cpf) " +
        "values " + "('"+nome+"','" +telefone+"','"+ rg+"','" +cpf+"','"+imagem+"')";

        try
        {
            java.sql.Statement stmt = con.createStatement();
            stmt.executeUpdate(comando);
            stmt.close();
            con.close();
        }
        catch(java.sql.SQLException e)
        {
            throw new java.lang.RuntimeException(e.getMessage());
        }



        //Fechando a Conexão:
        try
        {
            con.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            throw new java.lang.RuntimeException("erro fechar");
        }

        JOptionPane.showMessageDialog(null, "Registro Gravado com sucesso!");

        
    }

Só que nunca usei o tipo imagem para gravar no Banco...
se puderem me ajudar, sera de grande valia...

Obrigado e boa tarde a todos

ViniGodoy

Só corrigindo seu código:

private void jButton_CarregarActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        //Criação do FileChooser
        JFileChooser fileChooser = new JFileChooser();
        fileChooser.setDialogTitle("Importar imagem");
        fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

        //Abre a caixa para escolher a imagem
        if (fileChooser.showOpenDialog(this) != JFileChooser.APPROVE_OPTION) {
            return;            
        }
        jLabel1.setIcon(new ImageIcon(fileChooser.getSelectedFile().getPath()));
}

Quanto ao do banco, tente adaptar o que você mesmo postou. Todos os passos para gravar imagem estão ali. Note que ele usar PreparedStatement, e não Statement, como eu já te recomendei em outros tópicos.

Fazer concatenação na String do SQL (isso é, usar aquele sinal de +) é altamente prejudicial. Não só a sintaxe fica mais confusa, como seu programa pode dar erro caso o usuário use aspas simples na string dele. Você também fica dependente da String do formato de data do banco e não pode trabalhar com campos BLOB (como o da imagem).

adriano_kahn

mas n teria jeito de fazer da maneira que estou fazendo, pelo menos por enquanto?
Pois como disse, sou iniciante e aprendi passando string para sql… sei q é mais sucetivel a erros, mas queria ver funcionando. e depois farei do modo correto

ViniGodoy
adriano kahn:
mas n teria jeito de fazer da maneira que estou fazendo, pelo menos por enquanto?
Não.
adriano kahn:
Pois como disse, sou iniciante e aprendi passando string para sql... sei q é mais sucetivel a erros, mas queria ver funcionando. e depois farei do modo correto
O jeito certo é mais fácil do que você pensa... Veja a cara que fica seu mesmo código (sem as imagens, por enquanto):
String comando = "insert into Cliente (nome, telefone, rg, cpf) VALUES(?, ?, ?, ?)";
  try  
         {  
             java.sql.PreparedStatement stmt = con.prepareStatement(comando);  
             stmt.setString(1, nome);
             stmt.setString(2, telefone);
             stmt.setString(3, rg);
             stmt.setString(4, cpf);

             stmt.executeUpdate();  
             stmt.close();  
             con.close();  
         }  
         catch(java.sql.SQLException e)  
         {  
             throw new java.lang.RuntimeException(e.getMessage());  
         }

Viu só? Praticamente igual. A diferença é que existem ainda os método setInt, setDate e a possibilidade de gravar campos BLOB, como o colega fez na página anterior.

NUNCA concatene Strings no seu SQL. Pense na besteira que dá se o usuário digitar uma aspas simples no nome. Como por exemplo, escrever "Jefferson's". Isso fará as aspas fecharem no seu SQL e seu programa falhará miseravelmente. E depois, tente explicar para seu usuário que ele não pode inserir aspas simples.

Sem falar que esse bug torna seu banco susceptível a ataques. Usuários mais espertos poderiam fechar aspas simples e concatenar um código SQL malicioso.

Com o PreparedStatement, não só a sintaxe fica mais limpa (compare a String comando do meu código com a do seu), como também você está livre de todos esses problemas.

PS: Não use o fato de ser iniciante como desculpa para também ser preguiçoso. Programação exige estudo, e exige fazer as coisas das maneiras mais corretas possível. Um código mal-feito sempre te incomoda.

adriano_kahn

realmente seu codigo é mais consistente e deu certo… Mas as imagens ate agora nao consigo gravar no Banco… o q pode ser?

abs e bons estudos

ViniGodoy

Posta aí seu código corrigido e o que você tentou fazer para gravar a imagem no banco.

R

Olá amigos!

Desculpem ressuscitar este tópico mas estou com problemas para criar no java (netbeans) uma tela para poder inserir imagem no banco de dados mysql.

Bom pelo que andei vendo aqui no forum tem como fazer isto.

Apesar de varios topicos dizerem que deixa o banco lento.

Sou novo no java e preciso criar uma tela onde pego do banco mysql uma tabela com id(autoencremento)e imagem (blob), onde o usuario vai cadastrar a imagem no banco,e posteriormente nesta tela ele ira visualizar a imagem cadastrada.

Meu problema é praticamento toda a implementação, pois não sei como criar a tela para este fim, no netbeans tem uma ferramenta chamada JFileChooser, que pelo que vi ela permite que o usuário adicione arquivos ou fotos no banco de dados, mas fiquei perdido pois tentei criar essa tela adicionando um jframe e não consegui , tentei tambem criar usando um formulario Mestre detalhes mas fiquei confuso quanto a implementação do mesmo, pois usando o formulario mestre detalhe ele já implementa a conexão com o banco de dados e a tabela imagem que criei, mas não consegui nem gravar no banco e nem visualizar a imagem.

Se alguem puder me ajudar ficarei muito agradecido.

ViniGodoy
R

Olá ViniGodoy!

obrigado em responder, mas mesmo assim estou com duvidas

Não sei se estou no caminho certo, mas criei uma tela com o netbeans e usei o formulário mestre detalhes, pois pego a conexão com o meu banco de dados e a tabela que estarei usando para gravar as imagens.

criei uma classe jFileChooser para através de um botão importar ela me abre a janela para selecionar o diretorio e a imagem propriamente dita.

Como disse chamo o jFileCooser através de um botão até ai blz

criei nesta tela imagemView tambem um panel com 4 labels onde quero que apareça as imagens selecionadas pelo usuário, e depois gravar elas no banco de dados mysql

bom preciso visualizar a imagem escolhida e depois gravar ela no banco mysql, e tambem quando o usuario digitar o codigo do item relacionado com a imagem ela mostre as fotos salvas no banco

ViniGodoy
R

Olá Vini !

Desculpa ai realmente sou um pouco novo no forum, e não sabia como colocar o código apenas copiei e colei e ficou essa coisa monstruoza ai em cima, vou verificar no link que vc me passou para deixar mais claro , mesmo assim obrigado por responder o tópico, ainda não consegui implementar as telas para pegar uma imagem e gravar no banco, tentei uma que vc passou anteriormente, mas da alguns erros dizendo que <> está operação não e valida, eu to com uma duvida, sobre as classes, eu tenho que criar um classe filechooser, criar uma classe jframe ou jdialogo e colocar os labels nesta tela e chamar o filechooser e dentro do filechooser tenho que colocar os filtros, ou tenho que criar outra classe com os filtros e chamar ela dentro do filechooser, e depois chamar o file chosser dentro da jdialogo, to meio perdido nesta implementação.

Alguma dica?

até mais e um abraço.

ViniGodoy

Oi. Pode ler seu texto e reescrever com concordância? Pq vc só jogou um fluxo de pensamento ali e não entendi direito quase nada.

R

Olá vini!

Bom vamos lá.

Eu estou com duvidas na criação do código para poder pegar uma imagem de um diretorio escolhido pelo usuário , tipo c:/imagens ou home/imagens.Após o usuário excolher a imagem ela aparecer em um jlabel e quando ele clicar em salvar a imagem seria salva no banco de dados (mysql), e depois de salva a imagem no banco ele pudesse visualizar a imagem gravada referente ao item selecionado na mesma jlabel.

Eu andei procurando aqui no forum e no google e ferifiquei que tem que criar uma classe jfilechooser para poder indicar o caminho e depois mostrar a imagem, praticamente consegui chegar até ai, minha duvida está em gravar a imagem no banco e quando digitasse o código do produto a imagem seria mostrada também nesta jlabel.

criei uma tela onde tenho 3 jlabels, frente, fundos,lateral consegui através da classe jfilechooser escolher as imagens e mostrar em cada jlabel,mas não consegui gravar ainda no banco de dados, sei que tenho que converter estas imagens em para poder visualizar, mas já procurei e não to conseguindo fazer está operação.

No código abaixo consegui escolher as imagens de um diretorio e mostrar elas nas jlabels com seus respectivos nomes.

[color=blue]private void LocalizarActionPerformed(java.awt.event.ActionEvent evt) { [/color]
[color=red] JFileChooser fileChooser = new JFileChooser();
        fileChooser.setDialogTitle("Importar imagem");
        fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

        //Abre a caixa para escolher a imagem
       if (fileChooser.showOpenDialog(this) != JFileChooser.APPROVE_OPTION) {
          // return;
       }
        frente.setIcon(new ImageIcon(fileChooser.getSelectedFile().getPath()));
        
      if (fileChooser.showOpenDialog(this) != JFileChooser.APPROVE_OPTION) {
           //return;
        }

        fundos.setIcon(new ImageIcon(fileChooser.getSelectedFile().getPath()));

         if (fileChooser.showOpenDialog(this) != JFileChooser.APPROVE_OPTION) {
        }
        lateral.setIcon(new ImageIcon(fileChooser.getSelectedFile().getPath()));
        return;

        
 
    }[/color]
não sei como gravar a imagem no banco depois que visualizar na jlabel.

Vou explicar a situação:

tenho um deposito com varios objetos e preciso cadastrar estes no sistema com seus dados, modelo, tipo, cor etc...

No dia que for embora o objeto, preciso tirar fotos mostrando o estado do objeto, foto de frente , foto de fundo e foto de lado, para ficar gravado no bando de dados a situação do objeto no dia em que ele foi retirado do local, isto para evitar fraudes, onde terá um registro confirmado pela pessoa que tirar o objeto do local.

alguma idéia!

Desculpe a confusão.....

e obrigado por responder minhas duvidas.

bom parece que to aprendendo a colocar os códigos aqui no tópico graças a dica que vc me passou

P

Olá estou com uma duvida , no caso do JfileChooser, com os filtros selecionados para somente imagens, como posso trazer uma imagem por exemplo e salvar ela em um banco de dados, Alguém teria um exemplo para me passar. Abs

Criado 28 de julho de 2010
Ultima resposta 18 de jun. de 2013
Respostas 31
Participantes 5