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

Interfaces Graphiques en Java Discussion :

Récuperer plusieurs images depuis une base de données MYSQL avec BLOB et les afficher dans un JLABEL


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut Récuperer plusieurs images depuis une base de données MYSQL avec BLOB et les afficher dans un JLABEL
    Salut Tout le monde,

    Je veux récupère des images (.jpg) que j'ai mis dans une table image de ma base de données pour les afficher dans une interface swing. J'utilise des Jlabel pour mettre mes images dedans

    Voila mon code :
    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
    public class Image {
     
     
     
     
        public static void main(String[] args) throws ClassNotFoundException{
     
     
     
     
            JFrame frame = new JFrame();
            frame.setTitle("Image from DataBase");
            frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
                Connection conn;
                Statement instruction;
                ResultSet rs;
                String url = "jdbc:mysql://localhost:3306/assvisual";
                String userName = "root";
                String password = "admin";
                String sql="SELECT nom, images FROM image";
                JLabel photo, description;
                String s;
     
                try{
                 Class.forName("com.mysql.jdbc.Driver");
                 conn = DriverManager.getConnection(url, userName, password);
                 instruction = conn.createStatement();
                 Blob blob;
                 rs = instruction.executeQuery(sql);
                 while(rs.next()){
                 s = rs.getString("nom");
                 blob = rs.getBlob("images");
                 ImageIcon icon = new ImageIcon(blob.getBytes(1, (int)blob.length()));
                 photo = new JLabel(icon);
                 description = new JLabel();
                 frame.add(photo, BorderLayout.NORTH);
                 description.setText(s);
                 frame.add(description, BorderLayout.SOUTH);
     
                 }
            }
     
     
     
                              catch (SQLException ex) {
                                JOptionPane.showMessageDialog(null,
                                                              "erreur JDBC : " + ex.getMessage());
                              }
     
        frame.setVisible(true);
        } 
     
    }
    Problème : Je crois que le blob récupère que la première image de table et du coup je peux pas afficher la totalité de images sur mon interface.

    Pouvez vous m'éclairai sur la manière qui peut me faire parvenir à mon but svp?

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah tu utilises un Layout qui permet d'afficher uniquement 5 composants dans ton application, à savoir le BorderLayout.

    A chaque fois que tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    frame.add(photo, BorderLayout.NORTH);
    Tu remplaces l'image précédente.

    Je te conseille plutôt d'utilliser un autre layout correspondant à tes besoins (comment veux tu voire ta liste d'images affichée?)

Discussions similaires

  1. Afficher plusieurs images d'une base de donnés
    Par regisyves dans le forum C#
    Réponses: 0
    Dernier message: 08/03/2013, 12h20
  2. [SQL] Afficher une image depuis une base de données
    Par shenz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/01/2008, 00h46
  3. [Excel] Génération de fichier excel depuis une base de donnée MySQL
    Par wiama dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 26/05/2007, 01h06
  4. [MySQL]Affichage d'image depuis une base de données
    Par Sofute dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 20/02/2007, 14h43
  5. Réponses: 3
    Dernier message: 19/09/2006, 15h36

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