IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Charger et afficher une image à partir d'une base de données.


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Charger et afficher une image à partir d'une base de données.
    Bonsoir tout le monde,

    j'arrive pas a charger et afficher une image sur mon application JAVA a partir de ma base de donnees (ACCESS).

    Quelqu'un peu m'aider ou me donner un bon lien SVP.

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 855
    Points
    22 855
    Billets dans le blog
    51
    Par défaut
    Et toi, as-tu du code a nous montrer qu'on puisse voir ce que tu as tenté de faire (et éventuellement le corriger) ? Sous quelle format tes images sont-elles stockées dans ta base ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Les images sont sous format ''jpg'' je les stocké dans ACCESS, le champ est de type OLE Object.

    le code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    public void List_DataBase(){
     
     
    		ResultSet rs;
    		final Vector<String> nomColonnes = new Vector<String>();
    		final Vector<Vector<Object>> donnees = new Vector<Vector<Object>>();
     
    		try{
    			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	        Connection con = DriverManager.getConnection("jdbc:odbc:Test");
     
    	        Statement st = con.createStatement();
     
    	        rs= st.executeQuery("Select Authentication.Time, Authentication.Result, Employee.First_Name, Employee.Last_NAME, Employee.Photo from Employee  "
    					+ "INNER JOIN Authentication ON Employee.UserID=Authentication.UserID Order By Authentication.Time DESC");
     
     
     
    			ResultSetMetaData md = rs.getMetaData();  
    			int nbrColonnes = md.getColumnCount();   
    			//for (int i = 1; i <= nbrColonnes; i++)  {
    			for (int i = 1; i < nbrColonnes; i++) {
    				nomColonnes.addElement( md.getColumnName(i) );
    			}
    			//String []  nomColonnes = {"Time", "Result", "First_Name"};			
     
    			while (rs.next()) {    // Boucle pour remplir la Jtable
    				Vector<Object> row = new Vector<Object>(nbrColonnes);   
    				//for (int i = 1; i <= nbrColonnes; i++) {
    				for (int i = 1; i < nbrColonnes; i++) {
    				row.addElement( rs.getObject(i) );		
     
    				}
    				donnees.addElement( row );
     
    			}
    		}
    		catch(Exception e){
    			System.out.println(" =="+e.getMessage());
    			System.out.println(" =="+e.getCause());
    		}
    		JTable table =new JTable();
    		DefaultTableModel model = new DefaultTableModel(donnees, nomColonnes);
    	    table.setModel(model);
     
     
    		JScrollPane scrollPane = new JScrollPane(table);
          	scrollPane.setBounds(12, 503, 761, 168);
          	getContentPane().add(scrollPane);
     
     
     
    	}

    Mon but est d'afficher dans 'Jtable' le contenu des champs (time,result, firstname,lastname) et en même temps je veux afficher l'image stockée dans le champ Photo dans un jpanel. Pour 'Jtable' tout est correct juste j'ai pas réussi a afficher l'image.

    Mon code explique comment j'affiche le 'Jtable' mais pour l'image j'ai essayé plusieurs code mais ça n'a pas marché donc je l'ai enlevé.

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 855
    Points
    22 855
    Billets dans le blog
    51
    Par défaut
    Pour le moment je ne vois pas grand chose dans ce code qui soit en rapport avec des images. Mais bon, ton but est de récupérer un byte[] depuis ton enregistrement dans ta base (les bits format l'image stockée au format JPG) et d'ensuite d'utiliser ImageIO pour en lire une BufferedImage que tu pourras afficher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    byte[] bytes = resultSet.getBytes(imageColumnIndex); // Extraire de base.
    BuferedImage image = null;
    try (ByteArrayInputStream input = new ByteArrayInputStream(bytes)) {
        image = ImagIO.read(input); // Conversion en image.
    }
    PS : tu mentionnes un OLE object comme type donc vérifie bien que c'est le bon format pour les images et non pas un type Microsoft / Office.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    J'ai ajouté ton code pour extraire l'image de la base puis la convertir mais ça n'a pas marché.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    public void List_DataBase(){
     
     
    		ResultSet rs;
    		final Vector<String> nomColonnes = new Vector<String>();
    		final Vector<Vector<Object>> donnees = new Vector<Vector<Object>>();
     
     
     
     
    		try{
    			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	        Connection con = DriverManager.getConnection("jdbc:odbc:Test");
     
    	       Statement st = con.createStatement();
    	    /*    rs= st.executeQuery("Select Authentication.Time, Authentication.Result, Employee.First_Name, Employee.Last_NAME from Employee  "
    					+ "INNER JOIN Authentication ON Employee.UserID=Authentication.UserID Order By Authentication.Time DESC");*/
     
    	        rs= st.executeQuery("Select Picture.Photo from Picture");
     
     
     
     
    			ResultSetMetaData md = rs.getMetaData();  // Recuperer les meta données
    			int nbrColonnes = md.getColumnCount();   // le nombre de colonnes
    			for (int i = 1; i <= nbrColonnes; i++)  {/// Remplir le titre de colonnes 
    				nomColonnes.addElement( md.getColumnName(i) );
    			}
     
    			while (rs.next()) {    // Boucle pour remplir la Jtable
    				Vector<Object> row = new Vector<Object>(nbrColonnes);   
    				for (int i = 1; i <= nbrColonnes; i++) {
    				//row.addElement( rs.getObject(i) );		// Recuperer le i eme champs
     
     
                           //////////////////////////////////
    				byte[] bytes = rs.getBytes("Photo"); // Extraire de base.
    				BufferedImage image = null;
    				try (ByteArrayInputStream input = new ByteArrayInputStream(bytes)) {
    				    image = ImageIO.read(input);} // Conversion en image.
    				row.addElement(image);
     
     
    			///////////////////////////////////	
    				}
    				donnees.addElement( row );
     
     
    			}
     
     
     
    		}
     
     
    			catch(Exception e){
    				System.out.println(" =="+e.getMessage());
    				System.out.println(" =="+e.getCause());
    			}
     
     
    		JTable table =new JTable();
    		DefaultTableModel model = new DefaultTableModel(donnees, nomColonnes);
    	        table.setModel(model);
     
     
     
    		JScrollPane scrollPane = new JScrollPane(table);
          	scrollPane.setBounds(12, 55, 369, 264);
          	getContentPane().add(scrollPane);

    Pour essayer j'ai fais une table Picture dans ma base access et j'ai ajouté un champs qui s'appelle Photo de type Ole Objet mais ça n'a pas marché.

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 855
    Points
    22 855
    Billets dans le blog
    51
    Par défaut
    Oui mais justement, ton soucis c'est peut-être que le "format OLE", ça n'a en fait rien a voir avec le format JPEG (les bits dans un fichier JPG)... et qu'en fait ta base stocke l'image sous un format propre a Microsoft et que donc que Java (ImageIO) ne peut pas recréer l'image derrière.

    Après, ce que tu peux tenter de faire c'est d'ecrire le byte[] que tu viens de sortir de la DB dans un fichier et de tenter de voir si un logiciels de manipulation d'image lambda peut l'ouvrir sans planter ce qui serait une bonne indication que le tableau contient bien des données au format JPEG.

    Voir aussi :
    1. how to store and retrieve image in a MsAccess DB using JDBC sur OTN
    2. How to read an image from database table sur Java2Novice
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Bonjour,

    Le format OLE ajoute des heders à ton image , tu ne peux pas la récupérer dans un byte[].
    La solution a ton problème est probablement ici : https://blogs.msdn.microsoft.com/pra...as-ole-object/

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Bonjour Jimmy,

    J'ai essayé ton code mais il affiche une erreur de ce genre : Unable to determine image format.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    public void List_DataBase(){
     
     
    		ResultSet rs;
    		final Vector<String> nomColonnes = new Vector<String>();
    		final Vector<Vector<Object>> donnees = new Vector<Vector<Object>>();
     
     
     
     
    		try{
    			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	        Connection con = DriverManager.getConnection("jdbc:odbc:Test");
     
    	       Statement st = con.createStatement();
    	    /*    rs= st.executeQuery("Select Authentication.Time, Authentication.Result, Employee.First_Name, Employee.Last_NAME from Employee  "
    					+ "INNER JOIN Authentication ON Employee.UserID=Authentication.UserID Order By Authentication.Time DESC");*/
     
    	        rs= st.executeQuery("Select Picture.Photo from Picture");
     
     
     
     
    			ResultSetMetaData md = rs.getMetaData();  // Recuperer les meta données
    			int nbrColonnes = md.getColumnCount();   // le nombre de colonnes
    			for (int i = 1; i <= nbrColonnes; i++)  {/// Remplir le titre de colonnes 
    				nomColonnes.addElement( md.getColumnName(i) );
    			}
     
    			while (rs.next()) {    // Boucle pour remplir la Jtable
    				Vector<Object> row = new Vector<Object>(nbrColonnes);   
    				for (int i = 1; i <= nbrColonnes; i++) {
    				//row.addElement( rs.getObject(i) );		// Recuperer le i eme champs
     
     
     
             OLEImage oleImage = new OLEImage();
    				// using with JPEG format
    				InputStream input = rs.getBinaryStream("Photo");
    				byte buffer[] = oleImage.getByteImgFromOLEInputStream(input, "JPEG");
    				ImageIcon icon = new ImageIcon(buffer);
    				row.addElement(icon);
     
     
     
     
     
     
    			///////////////////////////////////	
    				}
    				donnees.addElement( row );
     
     
    			}
     
     
     
    		}
     
     
    			catch(Exception e){
    				System.out.println(" =="+e.getMessage());
    				System.out.println(" =="+e.getCause());
    			}
     
     
    		JTable table =new JTable();
    		DefaultTableModel model = new DefaultTableModel(donnees, nomColonnes);
    	        table.setModel(model);
     
     
     
    		JScrollPane scrollPane = new JScrollPane(table);
          	scrollPane.setBounds(12, 55, 369, 264);
          	getContentPane().add(scrollPane);
    }

  9. #9
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 855
    Points
    22 855
    Billets dans le blog
    51
    Par défaut
    Note pour les lecteurs de la discussion : le lien posté plus haut est vers du code C#. La version Java est donnée dans les commentaires de l'article : Java, Remove OLE headers from images stored as OLE Objects in access database

    As-tu testé avec un autre format d'image (BMP, PNG, etc.) ? Test images dans ta BD ne sont peut-être pas au format JPEG.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Oui bouye j'ai utilisé la version java du code qui se trouve dans le premier commentaire de l'article. j'ai testé aussi avec d'autres formats mais a chaque fois "même erreur" : Unable to determine image format.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Bonjour tout le monde,

    J'ai réussi a afficher l'image (en faisant appel a la classe oleImage (Le lien est au dessus) pour retirer les heders des images) dans un Jpanel par contre ça n'a pas marché avec Jtable (au lieu d'avoir l'image je reçois une ligne de ce genre dans la Jtable "javax.swing.ImageIcon@19aa1efe".

    Mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    public void List_DataBase(){
     
     
    		ResultSet rs;
    		ResultSet rs1 ;
    		final Vector<String> nomColonnes = new Vector<String>();
    		final Vector<Vector<Object>> donnees = new Vector<Vector<Object>>();
     
    		final Vector<String> nomColonnes1 = new Vector<String>();
    		final Vector<Vector<Object>> donnees1 = new Vector<Vector<Object>>();
     
     
    		try{
    			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	        Connection con = DriverManager.getConnection("jdbc:odbc:PalmSecureDB");
     
    	       Statement st = con.createStatement();
     
     
    		 rs= st.executeQuery("Select Authentication.Time, Authentication.Result, Employee.First_Name, Employee.Last_NAME from Employee  "
    						+ "INNER JOIN Authentication ON Employee.UserID=Authentication.UserID Order By Authentication.Time DESC");
     
    		     	ResultSetMetaData md = rs.getMetaData();  // Recuperer les meta données
    				int nbrColonnes = md.getColumnCount();   // le nombre de colonnes
    				for (int i = 1; i <= nbrColonnes; i++)  {/// Remplir le titre de colonnes 
    					nomColonnes.addElement( md.getColumnName(i) );
    				}
     
    				while (rs.next()) {    // Boucle pour remplir la Jtable
    					Vector<Object> row = new Vector<Object>(nbrColonnes);   
    					for (int i = 1; i <= nbrColonnes; i++) {
    					row.addElement( rs.getObject(i) );		// Recuperer le i eme champs
     
    					}
    					donnees.addElement( row );
     
    				}
     
     
    				//rs1= st.executeQuery("Select Employee.PIC from Employee");
     
     
    				rs1= st.executeQuery("Select Employee.PIC from Employee ");
    					+ "INNER JOIN Authentication ON Employee.UserID=Authentication.UserID");
     
      //rs1= st.executeQuery("Select Employee.PIC from Employee "
    		//  + "INNER JOIN Authentication ON Employee.UserID=Authentication.UserID");
       // rs1= st.executeQuery("Select Picture.Photo FROM Picture"
    		//	+ "INNER JOIN Picture ON Employee.UserID=Picture.UserID");
     
     
     	ResultSetMetaData md1 = rs1.getMetaData();  // Recuperer les meta données
    	int nbrColonnes1 = md1.getColumnCount();   // le nombre de colonnes
    	for (int i = 1; i <= nbrColonnes1; i++)  {/// Remplir le titre de colonnes 
    		nomColonnes1.addElement( md1.getColumnName(i) );
    	}
     
    	while (rs1.next()) {    // Boucle pour remplir la Jtable
    		Vector<Object> row1 = new Vector<Object>(nbrColonnes1);   
    		 for(int i = 1; i <= nbrColonnes1; i++) {
    		//row1.addElement( rs1.getObject(i) );		// Recuperer le i eme champs
     
     
    		OLEImage oleImage = new OLEImage();
     
    		// using with JPEG format
    		InputStream input = rs1.getBinaryStream("PIC");
    		byte buffer[] = oleImage.getByteImgFromOLEInputStream(input, "GIF");
    		ImageIcon icon = new ImageIcon(buffer);
    		row1.addElement( icon );
           // JLabel Label = new JLabel(icon);
           // lbl1Image.add(Label);
     
     
     
    		donnees1.addElement( row1 );
     
    	}}}
     
     
    			catch(Exception e){
    				System.out.println(" =="+e.getMessage());
    				System.out.println(" =="+e.getCause());
    			}
     
    		JTable table1 =new JTable(donnees1, nomColonnes1);
    	       JScrollPane scrollPane1 = new JScrollPane(table1);
    		table1.setRowHeight(240);
     
     
    		JTable table =new JTable();
    		DefaultTableModel model = new DefaultTableModel(donnees, nomColonnes);
    	        table.setModel(model);
                    JScrollPane scrollPane = new JScrollPane(table);
     
          	scrollPane1.setBounds(12, 55, 369, 264);
            scrollPane.setBounds(12, 503, 761, 168);
          	getContentPane().add(scrollPane);
          	getContentPane().add(scrollPane1);
     
     
    	}

    NB: Pour faciliter un peu les choses, il s'agit d'une application d'authentification (par la pomme de la main) en utilisant un capteur. donc a chaque fois qu'une personne mets la main au dessus du capteur et ce dernier la capte il va enregistrer directement dans la Base de données la date,nom et prénom de la personne, en même temps il va l'afficher avec Jtable dans l'application les informations sur la personne identifiée.

    Ma première Jtable marche très bien et m'affiche correctement les informations. Mon problème est dans ma deuxième Jtable1 où je veux afficher l'image de la personne identifier. Donc a chaque identification une nouvelle Image qui va être afficher a la place de l’ancienne.

  12. #12
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 855
    Points
    22 855
    Billets dans le blog
    51
    Par défaut
    Pour pouvoir afficher une image dans une JTable il te faut :
    • Soit placer un cell renderer pour cette colonne qui soit capable d'afficher une image :

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      jTable.getColumnModel().getColumn(0).setCellRenderer(jTable.getDefaultRenderer(ImageIcon.class));
      Ça peut être aussi utile de créer un renderer custom si tu as des données de plusieurs types dans une même colonne.
    • Soit renseigner la classe appropriée pour la colonne en surchargeant la méthode getColumnClass() de la JTable.
      La JTable mettra alors d'elle même un cell renderer par défaut qui peut afficher les images sur cette colonne.

      Utile lorsque tu as un type unique dans la colonne.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. [MySQL] Afficher une image à partir stockée en base de données
    Par arti2004 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 21/06/2011, 19h40
  2. Saisir une image à partir d'une photo ou d'une vidéo
    Par lohengrin56 dans le forum Flash/Flex
    Réponses: 0
    Dernier message: 07/07/2009, 16h17
  3. Réponses: 7
    Dernier message: 07/07/2008, 11h18
  4. [FLASH 8] Afficher des images à partir d'une base de données
    Par developpeur_mehdi dans le forum Flash
    Réponses: 9
    Dernier message: 15/03/2006, 10h43
  5. afficher une image à partir d'une base de données access
    Par zidenne dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/11/2005, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo