Comment inserer une image dans un jpanel ?
Est-ce le control le mieux approprié pour afficher une image?
merci
Version imprimable
Comment inserer une image dans un jpanel ?
Est-ce le control le mieux approprié pour afficher une image?
merci
Deux choix possible (soit utiliser un JLabel avec la méthode setIcon.
Ou sinon créer une classé héritant de JPanel et redéfinisant la méthode paintComponent pour qu'elle dessine l'image.
++
La méthode setIcon() du jLabel prend en parametre un objet de type "Image". Seulement c'est une classe abstraite. Comment puis-je construire une image simplement avec son chemin d'accès?
merci
Je pense que cela pourrai t'aider, une classe JImage hérité de JPanel..
Code:
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 import java.awt.Image; import java.awt.Graphics; import java.awt.Dimension; import java.awt.MediaTracker; import javax.swing.JPanel; public class JImage extends JPanel { private String nomFichier; private Image image; private Dimension dimImage; public JImage (String nomFichier) { this.nomFichier=nomFichier; // bien-entendu nomFichier est un chemin absolu sans oublier les "\" de protection sous waindo image=getToolkit().getImage(nomFichier); // on pointe l'image dimImage=new Dimension(image.getWidth(this),image.getHeight(this)); setPreferredSize(dimImage); // j'initialise la taille du composanr à la taille de l'image } public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image,0,0,this); } public Dimension getSize() { return dimImage; } }
ca c'est un beau cadeau!
N'oubliez pas le résolu si tout fonctionne bien
paintCompoment() c'est pour afficher l'image?
Qu'est ce que je dosi mettre en parametre?
merci
Pour utilisé cette classe, tu as juste à instancié un objet en passant en paramètre l'adresse de ton image.
Comme je ne suis pas fort en explication, je t'ai fais un petit programme de test, tu devrais comprendre le fonctionnement.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public test() { super("test"); //défini le titre setSize(200,200); //la taille JPanel pan=new JImage("H:\\google.gif"); //Panel FlowLayout b2=new FlowLayout(FlowLayout.CENTER); //layoutManager pan.setLayout(b2); //attache le layoutManager au panel setContentPane(pan); //defini le panel de la JFrame setVisible(true); //affiche la JFrame setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //opération par défaut ala fermeture } public static void main(String args[]) { new test(); }
Mon code n'est pas très bien structuré, veuillez m'en excuser mais j'ai pas trop le temps.
j'espere que sa pourra t'aidé! sinon n'hésite pas!