Je n'arrive pas à trouver sur le site un tuto pour insérer une image dans un JPanel....
Si c'est bien comme ça que l'on doit procéder....
Si quelqu'un connait la marche à suivre... ou l'emplacement d'un tuto.... je suis tout ouïe!
Merci d'avance!
Je n'arrive pas à trouver sur le site un tuto pour insérer une image dans un JPanel....
Si c'est bien comme ça que l'on doit procéder....
Si quelqu'un connait la marche à suivre... ou l'emplacement d'un tuto.... je suis tout ouïe!
Merci d'avance!
Franchement je pige pas... j'ai essayer jusqu'à faire un copier colle du code et ....
je n'arrive à rien....
voici un bout de 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 public Container getContainer(int i){ global = new JPanel(); global.setSize(900,600); global.setBackground(Color.white); global.setLayout(layout); switch (i){ case 0: panneau1 = new JPanel(); panneau1.setBounds(1,1,892,543);; panneau1.setBackground(Color.white); panneau1.setBorder(bordure); titre = new JLabel(); titre.setFont(police); titre.setPreferredSize(new Dimension(890,40)); titre.setText(" Bienvenue dans le jeu du PENDU"); panneau1.add(titre); Image fond = new Image("image/pendu.png"); // et là je voudrais mettre mon image sous mon titre // Elle est bien à la racine de mes fichier.classe dans un dossier image // Mais je ne comprend pas le truc de paintcomponent(). global.add(panneau1); break; }
Et un simple
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part JLabel monLabel = new JLabel(new ImageIcon("rhino.gif));
Il ne m'affiche rien du tout... mais c'est vrai qu'il est plus simple...pourtant mon chemin est bon!!
mon image se trouve dans un dossier image à coté de mes fichier.class
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 JLabel img = new JLabel(new ImageIcon("image/pendu.png")); img.setBounds(100,10,420,300); panneau1.add(img);
je pige vraiment pas....
Peux-tu tester le programme ci-dessous ?
Il devrait afficher l'image.
Et il explique sur la sortie standard s'il trouve ou non le fichier.
Nicolas
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 // appeler le fichier TestImageIcon.java import java.io.File; import javax.swing.*; public class TestImageIcon extends JFrame { private String myFileString = "C:/.../merci.png"; public TestImageIcon() { if (new File(myFileString).exists()) { System.out.println("Je trouve le fichier"); } else { System.out.println("Je NE trouve PAS le fichier !!"); } this.setSize(400,400); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.add(new JLabel(new ImageIcon(myFileString))); } public static void main(String[] args) { new TestImageIcon().setVisible(true); } }
désolé mais rien ne s'affiche.... je ne pige vraiment pas pourquoi....
Sinon j'ai essayer ce code mais toujours sans résultat....
pour l'appeler ensuite....
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 public class image extends JPanel 8. { 9. private String nomFichier; 10. private Image image; 11. private Dimension dimImage; 12. private MediaTracker tracker; 13. 14. public image (String nomFichier) 15. { 16. this.nomFichier=nomFichier; 17. // bien-entendu nomFichier est un chemin absolu sans oublier les "\" de protection sous waindo 18. 19. image=getToolkit().getImage(nomFichier); 20. // on pointe l'image 21. 22. tracker=new MediaTracker(this); 23. tracker.addImage(image,0); 24. // on précise au tracker qu'il doit gérer l'image à l'appel du groupe 0 25. 26. try{tracker.waitForID(0);} catch (InterruptedException e) {} 27. // on déclenche le chargement du groupe 0 et on attend que l'image soit chargée pour passer à la suite 28. 29. dimImage=new Dimension(image.getWidth(this),image.getHeight(this)); 30. setPreferredSize(dimImage); 31. // j'initialise la taille du composanr à la taille de l'image 32. } 33. 34. public void paintComponent(Graphics g) 35. { 36. super.paintComponent(g); 37. g.drawImage(image,0,0,this); 38. } 39. 40. public Dimension getSize() 41. { 42. return dimImage; 43. } 44. }
ou panneau1 et global sont desz JPanel....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 image img = new image("C:\\image\\pendu.gif"); panneau1.add(img); global.add(panneau1); global.add(img);
merci de votre aide car là je commence à péter un plomb...
Bonjour,
j'ai essayé ton code: cela marche, la seule modification que j'ai faite est sur la ligne 19
Par contre essaie de mettre la première lettre des classes en Majuscule
Code : Sélectionner tout - Visualiser dans une fenêtre à part image = Toolkit.getDefaultToolkit().getImage(nomFichier);
exemple d'utilisation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 javax.swing.JFrame frame = new javax.swing.JFrame("test"); frame.add(new image("C:\\sacrain.gif")); frame.setSize(100,100); frame.setVisible(true);
Merci de votre aide mais j'ai fini par trouver....
Dommage, j'aurais bien voulu avoir la solution qui marche... j'ai essayé les codes fournis, ca marche pas.
Bonjour,
Comment cela, cela ne marche pas ?
Que te donne mon code (basique) proposé ci-dessus (#6) ?
Il affiche qu'il trouve le fichier ET il n'affiche pas l'image ?
Nicolas
mmmh d'accord le problème est là. il ne trouve pas le fichier. mais je croyais qu'il suffisait de faire
quand le fichier est dans le répertoire images, qui est au même niveau que ma classe...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private String myFileString = "images/aaaaa.jpg";
j'ai:
-Pack_Interface
---TestImageIcon.java
---images (rep)
-----aaaaa.jpg
Bon jai reussi!
J'ai mis la méthode de chargement d'une image dans une classe spécialisée sur les images GestionImages.class:
J'ai fait une classe:
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 public static Image loadImages( JInternalFrame frm, String imageFile ){ try{ MediaTracker mTrack = new MediaTracker( frm ); Image image = frm.getToolkit().getImage( GestionImages.class.getResource(imageFile) ); //getURL( imageFile ) ); mTrack.addImage( image, 0 ); mTrack.waitForAll(); return image; } catch (Exception e){ System.err.println( " getimages : " + e ); } return null; }
et enfin j'implémente cette classe là où je définit mon JPanel avec image de fond:
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 import java.awt.Graphics; import java.awt.Image; import javax.swing.JPanel; public class PanelDeFond extends JPanel { Image backGround = null; public PanelDeFond( Image backGround ) { this.backGround = backGround; setOpaque( false ); } public void paint( Graphics g ) { if ( backGround != null ) g.drawImage( backGround, 0, 0,getSize().width, getSize().height, this ); super.paint( g ); } }
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 private JFrameAdminSQL frame; protected PanelDeFond pan; ... public JPanelAdminSQL(JFrameAdminSQL fenetre) { try { frame = fenetre; pan = new PanelDeFond( GestionImages.loadImages(frame, "aaaaa.jpg" )); pan.setBounds(new Rectangle(5, 300, 220, 300)); this.add(pan); } catch (Exception e) { e.printStackTrace(); } }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager