Afficher une image sur ihm
Résolu
raygouda
Messages postés
69
Date d'inscription
Statut
Membre
Dernière intervention
-
raygouda Messages postés 69 Date d'inscription Statut Membre Dernière intervention -
raygouda Messages postés 69 Date d'inscription Statut Membre Dernière intervention -
Bonjour, à tous
Mon problème est de savoir comment afficher des images de cette manière en prenant le chemin en paramètres c'est à dire à la place de "F:/mesprogrammesenjava/mes.tests/src/mesessais/koala.jpg" je puisse mettre un String que je passerai en paramètre pour afficher l'image.
Que dois je modifier dans le code ci dessous pour le faire?
Merci.
Mon problème est de savoir comment afficher des images de cette manière en prenant le chemin en paramètres c'est à dire à la place de "F:/mesprogrammesenjava/mes.tests/src/mesessais/koala.jpg" je puisse mettre un String que je passerai en paramètre pour afficher l'image.
Que dois je modifier dans le code ci dessous pour le faire?
Merci.
package mesessais; import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.Image; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; public class Panneau extends JPanel { public Panneau() { super(); } public void paintComponent(Graphics g){ try { Image img = ImageIO.read(new File("F:/mesprogrammesenjava/mes.tests/src/mesessais/koala.jpg")); g.drawImage(img, 0, 0,100,100, this); //Pour une image de fond //g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this); } catch (IOException e) { e.printStackTrace(); } } public static void main(String argv[]) { JFrame f = new JFrame(); Panneau p =new Panneau(); f.setContentPane(p); f.setSize(1000, 200); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }
A voir également:
- Afficher une image sur ihm
- Légender une image - Guide
- Image iso - Guide
- Comment rechercher une image sur google - Guide
- Acronis true image - Télécharger - Sauvegarde
- Mettre une image en filigrane sur word - Guide
2 réponses
Si par exemple tu passes le chemin via le String[] args, tu devrais donner le chemin args[0] au constructeur de Panneau qui irait chercher le fichier.
Remarque : la méthode paintComponent() est appelée régulièrement, donc c'est une mauvaise idée de mettre la lecture du fichier dans son corps, il vaut mieux lire une seule fois le fichier (dans le constructeur par exemple).
Remarque : la méthode paintComponent() est appelée régulièrement, donc c'est une mauvaise idée de mettre la lecture du fichier dans son corps, il vaut mieux lire une seule fois le fichier (dans le constructeur par exemple).
package mesessais; import java.awt.Graphics; import java.awt.Image; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; public class Panneau extends JPanel { private static final long serialVersionUID = 1; private final Image img; public Panneau(String fileName) throws IOException { img = ImageIO.read(new File(fileName)); } public void paint(Graphics g) { g.drawImage(img, 0, 0, 100, 100, null); } public static void main(String args[]) throws IOException { String fileName = args[0]; Panneau p = new Panneau(fileName); JFrame f = new JFrame(); f.setContentPane(p); f.setSize(1000, 200); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }
Ok.
En fait je suis entrain de concevoir une application de vente aux enchères sur rmi.Et pour cela je compte bien afficher l'image de chaque produit qu'on veut vendre aux enchères.A part cette façon y'a t'il pas une façon plus commode d'afficher l'image de chaque produit en prenant son chemin en paramètres.
Car c'est vraiment pas commode pour moi de cette façon.Et en plus je ne sais pas comment affecté le chemin à args[0].
Merci.
En fait je suis entrain de concevoir une application de vente aux enchères sur rmi.Et pour cela je compte bien afficher l'image de chaque produit qu'on veut vendre aux enchères.A part cette façon y'a t'il pas une façon plus commode d'afficher l'image de chaque produit en prenant son chemin en paramètres.
Car c'est vraiment pas commode pour moi de cette façon.Et en plus je ne sais pas comment affecté le chemin à args[0].
Merci.
Pour affecter des valeurs à args ça se passe à l'initialisation. Par exemple :
Alors je ne comprends pas ce que tu veux dire par "le chemin en paramètres"
Pour afficher plusieurs images dans la même interface tu peux utiliser un GridLayout.
J'avais fait un code exprès pour ce cas : Ajouter une image dans un GridLayout
java mesessais.Panneau C:/image.jpgJe pensais que c'est ce que tu voulais, visiblement non...
Alors je ne comprends pas ce que tu veux dire par "le chemin en paramètres"
Pour afficher plusieurs images dans la même interface tu peux utiliser un GridLayout.
J'avais fait un code exprès pour ce cas : Ajouter une image dans un GridLayout