Karibou95
Messages postés13Date d'inscriptionmardi 27 février 2007StatutMembreDernière intervention17 octobre 2008
-
7 oct. 2008 à 21:30
Karibou95
Messages postés13Date d'inscriptionmardi 27 février 2007StatutMembreDernière intervention17 octobre 2008
-
8 oct. 2008 à 17:00
Bonjour,
J'ai plusieurs questions :
Tout d'abord j'ai crée un canvas dans lequel je voudrais faire bouger un point , le probleme c'est que avec repaint(); le point se déplace mais ne s'efface pas au fur et à mesure :( donc au bout d'un moment on voit plus qu'une droite et pas un rond qui se déplace. ^^
De plus j'ai mis la couleur de fond de mon canvas en noir et quand je fais un thread, temps que le thread ne c'est pas terminé au moins une fois le fond de mon canvas et blanc o_o et redevient noir ensuite !? je ne comprend pas d'ou cela provient .
Voici en gros ma méthode paint :
public void paint (Graphics g)
{
for(int j=25;j<470;j++) // ici le for permet de crée des ronds jusqua l'endroit souhaité
{
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 8 oct. 2008 à 09:12
Quelque remarques :
1. Pour mettre une couleur de fond c'est setBackground et non setForeground.
2. Pour que la couleur de fond soit mise le plus rapidement possible il faut que tu met le setBackground en début de fonction.
3. il ne faut pas mettre de repaint dans la fonction paint.
Pour ce que tu veux faire il faut procéder de la manieres suivante.
public void paint (Graphics g)
{
setBackground(Color.Black);
g.fillOval(j,j,10,10);
}
protected int j=25;
public void incJ() {
if (j < 470)
j++;
}
et faire un thread qui a une méthode run avec
sleep(50);
lePanel.incJ();
lePanel.repaint();
Karibou95
Messages postés13Date d'inscriptionmardi 27 février 2007StatutMembreDernière intervention17 octobre 2008 8 oct. 2008 à 12:47
merci pour vos réponses néanmoins il me reste une petite erreur :(
quand je crée ma class PaintThread qui etends Thread avec mon run , il ne reconnais pas mon panel car il se trouve dans une autre class, comment faire pour le récuperer alors que je ne peut pas etends paintthread car il y'a deja extends?
dsl si la question est bete mais je commence juste :)
System.err.print("");
System.err.print("MARCHE PO LE THREAD O_o");
System.err.print("");
}
}
}
au dessus de mon thread dans ma class Canvas_Repere j'ai la méthode incJ, j'ai mon fillOval au debut de ma méthode paint et protected j = 25; au début de ma class Canvas_Repere.
en commentaire j'arrive à lire le TRy sinon ça marche po :(
peut etre mon erreur vient elle du fait que j'appelle un canvas et non un panel?
dans ce cas il faut peut etre que je crée un panel dans lequel je mettrais mon canvas ?
Karibou95
Messages postés13Date d'inscriptionmardi 27 février 2007StatutMembreDernière intervention17 octobre 2008 8 oct. 2008 à 17:00
non j'ai bien mis le setMonCanvas mais j'avais fait une erreur de frappe dans mon try arf :(
par contre maintenant il ne parcours plus du tout mon thread o_o aucun message ne s'affiche !?
mon fichier IHM et de la sorte :
une class Canvas_Repere
en dessous une class Painthread et en dessous ma class interface_Graphique avec :
PaintThread pt = ...
JPanel monPanel = ...
...
pt.setMonPanel(monPanel);
...