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

AWT/Swing Java Discussion :

Affichage d'une image dans un JTextArea


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Points : 46
    Points
    46
    Par défaut Affichage d'une image dans un JTextArea
    bonjour,
    comment je peux afficher une image.jpeg dans une zone de texte JTextArea en cliquant sur un bouton.
    merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Un JTextArea est fait pour afficher du texte. Un JTextPane serait plus indiqué pour afficher où du texte, où des images, où un mélange des deux, mais ce n'est pas si simple pour un débutant.
    Si le but est juste d'afficher une image, tu peux soit utiliser un JLabel (si l'image doit s'afficher dans sa taille originale), soit un Canvas (si l'image doit être contrainte : très grande à afficher plus petite). Si le but est d'avoir un champ qui affiche tantôt un texte (je pense à tes autres posts, c'est pourquoi j'envisage cette option), tantôt une image, et que tu ne dois afficher qu'une image et une seule à la fois, je te conseille d'opter pour une solution beaucoup plus simple, à base de CardLayout : tu auras 2 composants (un JTextArea pour le texte, et un JLabel, par exemple (tout dépend si l'image est contrainte ou pas), pour afficher l'image), au même endroit, et le CardLayout te permettra de choisir lequel des 2 composants voir.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Points : 46
    Points
    46
    Par défaut
    Bonjour, et merci pour vos remarques.
    alors lorsque on utilise un JLabel pour l'affichage de l'image. comment assuré ça?
    merci

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Mais tu as regardé un petit peu dans la documentation ?

    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    voici le code que je fais pour afficher une image dans une zone de texte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    InputStream is1 = getClass().getResourceAsStream("exemple.jpeg"); 
    JLabel grandeZone = new JLabel(new ImageIcon("is1"));
    mais malheureusement rien s'affiche sauf une zone gris sans image
    quel est l'erreur?
    merci bien

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    L'erreur est que tu passes en paramètre de ImageIcon le nom de la variable, créée dans la ligne juste avant dans une chaîne de caractères (entre double quotes) : en résumé, c'est n'importe quoi. ImageIcon prend en paramètre :
    • un nom de fichier ou un path de fichier
    • une URL (presque obtenue comme tu as fait dans la ligne précédente, mais non pas avec getResourceAsStream, mais avec getResource()
    • éventuellement une Image, ou les données d'une image
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    après voir les faqs et même les tutoriels. voici le code que je fais pour afficher l'image. mais malheureusement ça marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Icon images = new ImageIcon( "E\\dctxml\\exemple.jpeg" );
    JLabel label1 = new JLabel();
    label1.setIcon( images );
    l'erreur et au niveau du troisième ligne.
    merci bien

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    Ça va ça marche. L’image est affichée mais le problème quelle est plus grand que le J Label je fais ce code pour rendre plus petite. La taille change mais l'image devient floue.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageIcon icon = new ImageIcon(new ImageIcon("tonImage.jpg").getImage().getScaledInstance(20, 20, Image.SCALE_DEFAULT));
    S’il vous plait s'il existe une autre méthode permet de changer la taille de l'image sans rendre floue de m'informer.
    Merci bien

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Quelle erreur? On ne va pas deviner ton message d'erreur

    Sinon, il manque un : après le E dans ton chemin

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Bon ben les messages se sont croisés

    Mais en gros, image.getScaledInstance n'a pas la réputation d'être le système donnant la meilleur qualité

  11. #11
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    bon j'ai créé le code suivant qui correspond a une fonction pour la redimensionnement de l'image.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static BufferedImage resize(BufferedImage image, int width, int height) {
    	ImageIcon imageIcon=new ImageIcon("exemple.jpg");
        Graphics2D g2d ;
        g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY));
        g2d.drawImage(imageIcon.getImage(), 0, 0, width, height, null);
        g2d.dispose();
    }
    puis je fais l'appel de cette fonction comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BufferedImage image=ImageIO.read(exemple.jpg);
    	BufferedImage resizedImage=resize(image,100,100);
    mais je trouve une erreur au niveau de imageIO et le nom de l'image (exemple.jpg) l'erreur est "can not be resolved"
    je suis perdue aidez moi s'il vous plait
    merci beaucoup

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ok, visiblement, tu débute et tu n'a pas vraiment les bases de programmation, je vais commenter ton code au niveau des problèmes, et te laisser chercher les solutions à partir de là.

    Premièrement, la méthode de redimenssionnement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static BufferedImage resize(BufferedImage image, int width, int height) {
    	ImageIcon imageIcon=new ImageIcon("exemple.jpg");
        Graphics2D g2d ;
        g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY));
        g2d.drawImage(imageIcon.getImage(), 0, 0, width, height, null);
        g2d.dispose();
    }
    Ligne 1: tu passe en paramètre un objet appelé image, que l'on peut supposer être la source à redimensionner. Mais tu ne l'utilise nulle part dans le code de la méthode. Il y a un problème de logique là, tu devrais l'utiliser quelque part....
    tu déclare aussi que la méthode retourne un BufferedImage, la version redimensionnée je présume. Mais nulle part tu ne retourne de valeur.
    Ligne 2: tu crée une nouvelle imageIcon à partir de la ressource "exemple.jpg", quel est sont utilité, puisque l'on est supposé passer l'image d'origine en paramètre de la méthode?
    Ligne 3: tu déclare une variable appelée g2d, mais nulle part tu ne lui attribue de valeur. Du coup, à la ligne suivante, le compilateur va raler car on ne sais pas appeler la méthode "addRenderingHints" sur du rien . Tu dois lui donner une valeur, qui viendra de ton image destination (BufferedImage.getGraphics())

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BufferedImage image=ImageIO.read(exemple.jpg);
    	BufferedImage resizedImage=resize(image,100,100);
    ImageIO.read prend en paramètre une String, mais que lui as tu passé? un attribut appelé jpg sur une variable appelée exemple.....

Discussions similaires

  1. Pb d'affichage d'une image dans un DC
    Par vanitom dans le forum MFC
    Réponses: 2
    Dernier message: 03/03/2006, 09h59
  2. Exemple affichage d'une image dans un bouton
    Par had182 dans le forum MFC
    Réponses: 2
    Dernier message: 12/01/2006, 18h38
  3. [PHP-JS] Affichage d'une image dans une popup à la taille
    Par urbanspike dans le forum Langage
    Réponses: 3
    Dernier message: 27/09/2005, 20h53
  4. Réponses: 1
    Dernier message: 11/05/2005, 17h28
  5. [DEBUTANT][HTML] affichage d'une image dans une page
    Par nimport nawak dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/04/2005, 19h50

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