VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Méthode repaint() dans java

LeLaulau 9Messages postés 2 novembre 2001Date d'inscription - Dernière réponse le 27 déc. 2010 à 20:12
Est ce que quelqu'un peut me dire pourquoi la méthode repaint() de awt.Component a du mal à marcher...
Quand je l'appelle il ne se passe rien.

Plus concrètement, j'ai un graphique dans une fenêtre, quand je redimensionne la fenêtre je voudrais l'obliger à se redessiner...

Merci
Lire la suite 

Méthode repaint() dans java »

Suggestions
8 réponses
Réponse
+3
moins plus
Oui mais des années après d'autre programmeurs ammateurs ont se problème.

Et c'est la premère réponce sur google
Ajouter un commentaire
Réponse
+3
moins plus
J'ai une réponse : container.validate() : actualise tout ce qu'il y a dans le container.

Ca marche (les méthodes à partir de repaint, y compris celle de elnico, n'ont jamais voulu marcher chez moi).

Sam
Ajouter un commentaire
Réponse
+2
moins plus
Peux tu nous montrer ton code ce sera plus facile pour t'aider ...
LeLaulau- 20 mars 2002 à 20:13
Le bout de code est le suivant:


void db_mousePressed(MouseEvent e) {

PointGraphique p = db.convertirKelvin(new Point(e.getX(), e.getY()));
afficheEcranAnalyse(p.x);

}


void afficheEcranAnalyse(double compo){
try{
AnalyseThermique at = new AnalyseThermique(db.traceAnalyse(compo));
this.setSize((int)(largeurEcran*0.65), (int)(hauteurEcran*0.65));
this.setLocation((int)(largeurEcran*0.35),(int)(hauteurEcran*0.15));
this.repaint();
f.removeAll();
f.add(at);
f.setSize((int)(largeurEcran*0.35), (int)(hauteurEcran*0.65));
f.setLocation(0,(int)(hauteurEcran*0.15));
f.show();
}
catch (Exception ex){
}
}


il s'agit (this) d'un classe qui hérite de Frame.
Dedans il y a principalement un diagramme binaire nommé db qui est extends Canvas.
f c'est juste un Frame tout con.
PointGraphique c'est juste une classe que j'ai faite parceque je n'arrivais pas à me servir de la classe Point.Double (si d'ailleurs tu sais pourquoi...j'ai l'impression qui comprend pas le point, ce qui paraîtrais normal)


voilà
si tu veux je peux même tout t'envoyer...(sauf qu'avec la base de donnée ça fait gros :)
hub- 21 mars 2002 à 15:11
Deux précisions

1. c'est un Frame ou JFrame?
2. c'est quoi " f " ?

hub
"Pas plus bas qu'au fond"
Ajouter un commentaire
Réponse
+2
moins plus
elnico, dernier message a presque 6ans..Je pense qu'il a résolu son problème depuis.
Ajouter un commentaire
Réponse
-2
moins plus
J'ai déjà eu ce problème !!

En fait j'ai constater que lorsque tu appelles la methode repaint d'un component, celui-ci est bien repainté mais les components qui sont posé dessus ne sont pas repainter.

Pour pallier à ce problème, j'ai surcharger la methode repaint dans chacun des components qui possedait d'autres components.

public void repaint()
{
// repaint le component courant
super.repaint();
//repaint tous les components qu'il possède
for(int i = 0; i < elements.size(); i++)
((Component)(elements.elementAt(i))).repaint();
}

elements est vector et à chaque fois que j'add un component sur celui-ci, je l'ajoute au vector
De cette manière je force mon component courant à repainter les components qu'il possède.

ET CA marche tres bien !!!


---------
Peguinette
elnico - 26 avril 2007 à 13:21
public void repaint()
{
// repaint le component courant
super.repaint();
// repaint tous les components qu'il possède
for(int i = 0; i < this.countComponents(); i++)
this.getComponent(i).repaint();
}

c'est mieux non?
Ajouter un commentaire
Ce document intitulé « méthode repaint() dans java » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?