TheBigBossJeff
Messages postés6Date d'inscriptionmercredi 15 janvier 2003StatutMembreDernière intervention27 novembre 2005
-
25 mars 2005 à 16:44
TheBigBossJeff
Messages postés6Date d'inscriptionmercredi 15 janvier 2003StatutMembreDernière intervention27 novembre 2005
-
26 mars 2005 à 11:34
Bonjour à tous.
Voila ça fait quelque temps que je me plaits à essayer le java.
Pour l'instant j'ai réussi à me débrouiller pour résoudre mes problèmes mais là je calle.
Y a surement un p'tit truc que j'ai pas bien fait mais je trouve pas.
Voila le pb :
J'ai créé une classe
class Picture extends JComponent
ensuite je l'initialise comme il faut et je la met dans un JPanel
Picture picTmp = new Picture(createImageIcon("images/vide.gif",
"solution").getImage());
JPanel pnlTmp = new JPanel();
pnlTmp.add(picTmp);
J'ajoute un écouteur sur mon Jpanel pour pouvoir détecter un click (la
classe principale où je créé le jpanel a un implements MouseListener)
pnlTmp.addMouseListener(this);
dans ma fonction mouseclicked j'affiche une messagebox pour voir si l'évènement est détecté
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(null,"coucou");
}
J'espère que jusque là c'est clair
le problème est que quand je clique sur mon Jpanel, rien ne se passe par contre si je met un ecouteur sur picTmp, là ça marche
picTmp.addMouseListener(this);
Or je voudrais réagir au click de la souris sur le JPanel et non pas sur le Picture.
Madvin
Messages postés123Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention26 août 20123 25 mars 2005 à 23:45
Salut,
c'est normal que ce soit ton instance de Picture qui réagisse au click et non l'instance du JPanel, puisque celle-ci se trouve au premier plan par rapport au JPanel.
Je ne peux pas plus t'aider. Désolé.
cs_anzize
Messages postés41Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention 9 juin 2005 26 mars 2005 à 10:58
Yenapa a probablement raison.
En plus, si tu as veux rajouter dynamiquement d'autres images, il suffit, en plus d'extendre JLabel ou JPanel, d'implementer Runnable et d'utiliser la méthode update....
Dans tous les cas si tu veux avoir le container de ton objet, utilise
TheBigBossJeff
Messages postés6Date d'inscriptionmercredi 15 janvier 2003StatutMembreDernière intervention27 novembre 2005 26 mars 2005 à 11:34
Merci à tous pour vos réponses ...
Apres avoir cherché j'ai trouvé pour pouvoir acceder au conteneur d'un objet : getParent() (merci quand même anzize).
J'utilise l'objet Picture pour gérer le drag and drop d'images.
mais dans le cas que je vous ai expliqué je n'ai pas besoin de drag and drop donc
Yenapa tu as tout a fait raison, j'aurai du directement mettre une image dans mon Jpanel sans passer par un objet Picture.
De plus j'ai etudié ce que tu me propose et effectivement c très simple.
Je n'ai pas encore trop l'habitude de développer en java.
Encore merci à tous pour vos réponses rapides et efficaces.