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 :)
Version imprimable
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 :)
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.
Bonjour, et merci pour vos remarques.
alors lorsque on utilise un JLabel pour l'affichage de l'image. comment assuré ça?
merci
:)
Mais tu as regardé un petit peu dans la documentation ?
Bonjour,
voici le code que je fais pour afficher une image dans une zone de texte.
mais malheureusement rien s'affiche sauf une zone gris sans image :(Code:
1
2 InputStream is1 = getClass().getResourceAsStream("exemple.jpeg"); JLabel grandeZone = new JLabel(new ImageIcon("is1"));
quel est l'erreur?
merci bien :)
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
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 :(
l'erreur et au niveau du troisième ligne.Code:
1
2
3 Icon images = new ImageIcon( "E\\dctxml\\exemple.jpeg" ); JLabel label1 = new JLabel(); label1.setIcon( images );
merci bien
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. :(
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.Code:ImageIcon icon = new ImageIcon(new ImageIcon("tonImage.jpg").getImage().getScaledInstance(20, 20, Image.SCALE_DEFAULT));
Merci bien
Quelle erreur? On ne va pas deviner ton message d'erreur :)
Sinon, il manque un : après le E dans ton chemin ;)
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é :)
Bonjour,
bon j'ai créé le code suivant qui correspond a une fonction pour la redimensionnement de l'image.
puis je fais l'appel de cette fonction comme suit:Code:
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(); }
mais je trouve une erreur au niveau de imageIO et le nom de l'image (exemple.jpg) l'erreur est "can not be resolved"Code:
1
2 BufferedImage image=ImageIO.read(exemple.jpg); BufferedImage resizedImage=resize(image,100,100);
je suis perdue aidez moi s'il vous plait :)
merci beaucoup
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:
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....Code:
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(); }
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())
ImageIO.read prend en paramètre une String, mais que lui as tu passé? un attribut appelé jpg sur une variable appelée exemple.....Code:
1
2 BufferedImage image=ImageIO.read(exemple.jpg); BufferedImage resizedImage=resize(image,100,100);