bonjour,
Ma question est très con je pense, mais j'y arrive pas. Je voulais savoir comme faut faire pour mettre une image au centre d'un JPanel?
Merci
bonjour,
Ma question est très con je pense, mais j'y arrive pas. Je voulais savoir comme faut faire pour mettre une image au centre d'un JPanel?
Merci
Faq -> recherche avancée -> google -> Javadoc...
Il y a tellement de possibilités de trouver...
Sinon, dans cette démo tu as un code assez similaire qui devrait t'aider à appréhender le problème.
JScrollPane sur une image
Si , et la ont échoué mais pas nous, pensez à dire et cliquez sur . Merci !
Ici, c'est un forum, pas une foire. Il y a de respectables règles... à respecter !
C'est du caml ca ? une fonction qui prend en parametre un Faq, une recherche avancée, un google et qui renvoie la javadoc ? ca colle :pEnvoyé par leminipouce
Développeur Java / Flex à Shanghai, Chine
mes publications
Mon dernier tutoriel : Messages Quit IRC : explications
La rubrique IRC recrute des redacteurs : contactez moi
Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]
j'ai trouver avec la methode
mais il y a un moyen de faire sans la methode paint ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void paint(Graphics g){ g.drawImage(ledEteind,11,1,null); }
Bonjour,
Je ne sais pas non plus comment faire pour mettre une image dans un JPanel et je ne comprends pas comment utiliser cette fonction n'ayant jamais vu les notions de Graphics...
J'ai compris que ca dessinait une image sur un Graphics mais comme je fais pour que ca la dessine sur un JPanel ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public void paint(Graphics g){ g.drawImage(ledEteind,11,1,null); }
Merci beaucoup
Houla c'est pas gagne...
La classe Panel contient la methode public void paint(Graphics graphics) et la classe JPanel dispose de la methode protected void paintComponent(Graphics graphics). Ces methodes sont appellees lorsque l'arbre/la hierarchie des composants est affiche a l'ecran et que c'est le moment de dessiner le Panel ou le JPanel (celon lequel on utilise). En quelque sorte l'objet Graphics fournis en parametre represente la plupart du temps la surface de l'ecran (ou la memoire video si acceleration materielle).
En sous-classant l'un de ces classe et en surchargeant la bonne methodes et en dessinant l'image dans le Graphics fournis on affiche l'image a l'ecran (si le composant est affiche a l'ecran).
Voici un exemple de classe pret a l'emploi capable d'afficher une image.
Note : ici l'image s'affiche dans le coin superieur gauche (normalement le panel a la taille de l'image, mais certains layout peuvent malencontreusement l'aggrandir). Les changements a apporter sont minimaux pour afficher l'image au centre du panel ou pour tenir compte de la bordure optionnelle du panel.
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 package test; import java.awt.*; import java.beans.*; import javax.swing.*; /** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: </p> * @author not attributable * @version 1.0 */ public final class ImagePanel extends JPanel { public static final String IMAGE_PROPERTY = "ImagePanel.image"; private InnerListener innerListener = new InnerListener(); public ImagePanel(Image image) { super(); addPropertyChangeListener(IMAGE_PROPERTY, innerListener); setImage(image); } public void dispose() { removePropertyChangeListener(IMAGE_PROPERTY, innerListener); innerListener = null; setImage(null); } public void setImage(Image image) { putClientProperty(IMAGE_PROPERTY, image); } public Image getImage() { return (Image) getClientProperty(IMAGE_PROPERTY); } /** {@inheritDoc} */ @Override protected void paintComponent(Graphics graphics) { super.paintComponent(graphics); Image image = getImage(); if (image != null) { graphics.drawImage(image, 0, 0, null); } } /** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: </p> * @author not attributable * @version 1.0 */ private class InnerListener implements PropertyChangeListener { /** {@inheritDoc} */ public void propertyChange(PropertyChangeEvent event) { String property = event.getPropertyName(); if (property.equals(IMAGE_PROPERTY)) { Image image = getImage(); int width = 0; int height = 0; if (image != null) { width = image.getWidth(null); height = image.getHeight(null); } Dimension size = new Dimension(width, height); setPreferredSize(size); setMinimumSize(size); repaint(); } } } }
Woala.
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Le plus simple est encore de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Image image = ImageIO.read(new File("chemin/vers/image")); JLabel viewer = new JLabel(new ImageIcon(image)); JPanel panel = new JPanel(new BorderLayout()); panel.add(viewer);
Salut,
Gfx, j'ai essayé ton code, mais on dirait que le constructeur de JPanel qui prend un ImageIcon n'existe pas...
Merci bouye et gfx
je vais essayer de m'en sortir avec ca
C'est bon j'ai réussi à me faire des JPanels avec des images dedans
J'avais juste de la peine avec la notion de graphics, je pensais qu'il fallait appeler la methode paint component avec en paramètre ce sur quoi on voulait dessiner mais maintenant j'ai compris
encore merci bouye
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