dessiner une image ailleurs que dans paint() [java] - Java - Programmation
Marsh Posté le 17-08-2002 à 19:45:26
bin c quoi ton problème déjà ?
Marsh Posté le 17-08-2002 à 23:44:02
Je sais pas si c'est ca ta question, mais tu peux recuperer un objet Graphics par toi meme, sans forcement utiliser celui passé à la méthode paint().
Marsh Posté le 18-08-2002 à 10:43:42
R3g a écrit a écrit : Je sais pas si c'est ca ta question, mais tu peux recuperer un objet Graphics par toi meme, sans forcement utiliser celui passé à la méthode paint(). |
oui c'est ça que je veux faire , la question est peut on afficher un objet graphique sans passer par la methode paint .
sinon je capte pas trop quel sont les types de composant sur lesquel l'image peux s'afficher , des panel ,des layout ?
Marsh Posté le 18-08-2002 à 11:08:13
Tu peux récupérer un object Graphics de ton composant en utilisant la méthode getGraphics() de JComponent ou Component.
Ensuite, on peut utiliser cet objet pour dessiner directement dans le composant. Cela dit, j'ai jamais essayé
Marsh Posté le 18-08-2002 à 11:14:43
gm_superstar a écrit a écrit : Tu peux récupérer un object Graphics de ton composant en utilisant la méthode getGraphics() de JComponent ou Component. Ensuite, on peut utiliser cet objet pour dessiner directement dans le composant. Cela dit, j'ai jamais essayé |
ça a l'air tres interessant ça , j'espére que ça va marcher , j'essai de créer une interface de jeux avec des photos , des boutons etc mais c'est trop le bordel ...
Marsh Posté le 18-08-2002 à 18:51:48
si quelqu'un pouvait m'expliquer ou s'affiche exactement les images car j'arrive pas a les manipuler a ma guise
quand je fais :
Code :
|
l'image s'affiche dans mon FlowLayout mais ensuite j'aimerais l'effacer et mettre mes boutons etc
Marsh Posté le 18-08-2002 à 18:57:45
Grand Aigle a écrit a écrit : l'image s'affiche dans mon FlowLayout mais ensuite j'aimerais l'effacer et mettre mes boutons etc |
ce que tu veux faire, c'est carément modifier l'affichage qu'i y a dans ton layout ... pourquoi tu utilises pas plutot un autre panel ? tu affiches ton image dans un panel que tu mets dans ton flowlayout, puis quand tu veux remplacer l'image par tes boutons etc ... tu enlève le panel avec l'image et tu le remplaces avec un panel sans l'image et avec les boutons
Marsh Posté le 18-08-2002 à 19:04:39
benou a écrit a écrit : ce que tu veux faire, c'est carément modifier l'affichage qu'i y a dans ton layout ... pourquoi tu utilises pas plutot un autre panel ? tu affiches ton image dans un panel que tu mets dans ton flowlayout, puis quand tu veux remplacer l'image par tes boutons etc ... tu enlève le panel avec l'image et tu le remplaces avec un panel sans l'image et avec les boutons |
ou j'aimerais bien faire ça , mais je suis pas sur que mon image puisse s'afficher dans un panel .
elle s'affiche dans le fond de la fentre de mon application j'ai aucune maitrise la dessus
Marsh Posté le 18-08-2002 à 20:09:30
Grand Aigle a écrit a écrit : ou j'aimerais bien faire ça , mais je suis pas sur que mon image puisse s'afficher dans un panel . elle s'affiche dans le fond de la fentre de mon application j'ai aucune maitrise la dessus |
Ben justement quand tu as écrit :
Citation :
|
tu l'appelles à partir de quelle méthode ? Et 'this' représente quoi ?
Marsh Posté le 19-08-2002 à 09:43:38
gm_superstar a écrit a écrit : Ben justement quand tu as écrit :
|
this ça represente le composant ou je dois l'afficher ?
je l'appel de la methode paint (Graphic g);
Marsh Posté le 19-08-2002 à 10:48:53
Grand Aigle a écrit a écrit : si quelqu'un pouvait m'expliquer ou s'affiche exactement les images car j'arrive pas a les manipuler a ma guise quand je fais :
|
Une technique pas mal utilisé est de sortir les images qui ne doivent pas être affichée de l'écran. C'est ce que j'utilise et c'est assez pratique, ça t'évite de gérer plein de panel ...
Marsh Posté le 19-08-2002 à 10:54:11
Si ça peut t'aider, voici une classe dont je me sers pour gérer le positionnement de mes images (désolé, j'ai pas eu le temps de mettre les commentaires) :
Code :
|
Marsh Posté le 19-08-2002 à 10:57:22
merci je vais essayer de redefinir la methode drawImage comme tu le fait dans ta classe.
car la je fais des test et quand j'affiche une image dans un panel meme en enlevant ce panel l'image reste afficher .
Marsh Posté le 19-08-2002 à 11:05:39
bobuse, c propre ça : dessiner l'image en dehors du panel quand tu veux qu'elle disparaisse !?
J'trouve pas trop... y a surement d'autres moyens (hé non, je connais pas ça)
Marsh Posté le 19-08-2002 à 11:19:29
El_Gringo a écrit a écrit : bobuse, c propre ça : dessiner l'image en dehors du panel quand tu veux qu'elle disparaisse !? J'trouve pas trop... y a surement d'autres moyens (hé non, je connais pas ça) |
C'est clair ! Mais bon, après pas mal de tentatives, c'est ce que je trouve de plus efficaces ! Mais si quelqu'un a mieux, je suis preneur !
Marsh Posté le 19-08-2002 à 11:28:33
merci vous m'avez bien aidé , ça fonctionne a peu pres !!!
Marsh Posté le 20-08-2002 à 10:22:16
Une autre solution que je vais peut-être adopter :
chacun de mes objets à afficher contient un flag(drawFlag) qui indique si il doit être dessiné ou pas. Grossomodo, ça donne ça :
Code :
|
Qu'est-ce que vous en pensez ?
C'est vrai que ça fait un booléen par objet en plus, mais c'est peut-être plus propre
Marsh Posté le 20-08-2002 à 10:23:34
N.B. : La méthode draw est appelé dans le paint du composant ou tout est affiché.
Marsh Posté le 20-08-2002 à 11:08:43
finalement ça me plait bien cette technique !
Je sais pas si c'est plus propre que l'autre, mais en tout cas, c'est plus pratique et surtout plus générique.
En fait, si c'est plus propre, car quand un objet est positionné, c'est con d'effacer ses coordonnées pour le faire disparaître, parce que après, il faut se débrouiller pour les récupérer ...
lerci à El_Gringo pour m'avoir fait un peu réfléchir !
Marsh Posté le 20-08-2002 à 11:14:02
Bah oui, c clair que c plus propre. Et aussi vachement plus logique. Au moins, qd l'image ne doit pas être dessinée, tu la dessines pas !
Marsh Posté le 20-08-2002 à 11:26:37
El_Gringo a écrit a écrit : Bah oui, c clair que c plus propre. Et aussi vachement plus logique. Au moins, qd l'image ne doit pas être dessinée, tu la dessines pas ! |
!!bé oui, mais dans plusieurs doc., il disait que c'était vachement utilisé et tout ça ... mais bon, ils devaient pas être à jour, pasque c'est carément plus POO cette méthode !
Marsh Posté le 17-08-2002 à 17:53:00
salut , j'ai besoin d'afficher une image dans application ,j'y arrive sans probléme mais j'aimerais savoir si il n'y pas moyen d'eviter que ceci se passe dans la methode paint(Graphics g) ?
mon probleme etant que si fait une methode comme ceci :
il n'y pas moyen de l'appeler ailleurs que dans paint.
je suis pas tres clair mais c'est pas facile a expliquer