Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2658 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Résolu] paintComponent pas appelé lors d'un resize window...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] paintComponent pas appelé lors d'un resize window...

n°416310
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 04-06-2003 à 15:28:39  profilanswer
 

Bonjour,
voilà mon pb :  
je dispose d'une fênêtre principale JFrame contenant un JPanel global dont le layout manager est BorderLayout() et qui contient une JToolBar et uun JPanel, dis panelDessin.
 
Dans le panelDessin, j'insère des JComponents sur lesquels je déssine des formes (ici, des rectangles et du texte, principalement). Le dessin est implanté dans la méthode :
protected void paintcomponent...
 
le paintComponent fonctionne bien : si la fenêtre est "icônifiée" et qu'elle réapparaît ensuite, tout est bien redéssiné....
mais, en cas de redimmenssionnement de la fenetre, tous les composants de dessin disparaîssent.... et en faisant la trace (juste un System.out dans le paintComponent), il semble que le paintComponent ne soit même pas appelé !!!
 
d'où cela peut il venir ?
 
la moindre piste, la moindre idée pourrait nous servir, n'hésitez pas :) merci !


Message édité par Moustaaki le 05-06-2003 à 10:42:42
mood
Publicité
Posté le 04-06-2003 à 15:28:39  profilanswer
 

n°416401
bobuse
Posté le 04-06-2003 à 16:04:45  profilanswer
 

ben a priori comme ca sans voir un peu plus de code, j'en sais rien moi
 
Par contre, la solution peut etre de catcher l'evement resize, et de repainter [:spamafote]  
 
mais bon, c'est bizarre ...
Kan tu dis que les dessins disparaissent, c'est quand tu resize plus petit, puis plus grand ?


---------------
get amaroK plugin
n°416553
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 04-06-2003 à 16:55:02  profilanswer
 

Citation :

Kan tu dis que les dessins disparaissent, c'est quand tu resize plus petit, puis plus grand ?


 
les deux ;)
 

Citation :


ben a priori comme ca sans voir un peu plus de code, j'en sais rien moi  


et bien pour l'instant, j'n'ai pas tous sous la main :/
 
ouala déjà le paintComponent du composant graphique :
 
 

Code :
  1. public void paintComponent(Graphics g)
  2.   {
  3.     super.paintComponent(g);
  4.     //System.out.println("paintcomponent de composant graphique" );
  5.     setBackground(couleurDerriere);
  6.     jl.setForeground(couleurTexte);
  7.     if (this.selected)
  8.     {
  9.       ((Graphics2D)g).setStroke(new java.awt.BasicStroke(6));
  10.     }
  11.     else
  12.     {
  13.       ((Graphics2D)g).setStroke(new java.awt.BasicStroke(1));
  14.     }
  15.     if (this.mode)   // Cas de l'orientation de la droite
  16.     {
  17.           g.drawRect(0,0,(int)this.getBounds().getWidth()-1, (int)this.getBounds().getHeight()-1);
  18.     }
  19.     else
  20.     {
  21.           g.drawRect(0,(int)this.getBounds().getHeight()-1,(int)this.getBounds().getWidth()-1,0 );
  22.     }
  23.   }


 
de plus, on ajoute un composantGraphique à l'espace de dessin en utilisant la méthode add(JComponent ou Component, chai plu)
 
 
ouala pour te faire patienter ;)
aça doit pas venir de là mais on sait jamais ;)
j'essayerais de te récup' le code de la construction de la fenêtrte ainsi que la méthode qui insère un nouveau composant graphique dans l'espace de dessin.
 

Citation :

Par contre, la solution peut etre de catcher l'evement resize, et de repainter [:spamafote]  


 
:lol: on y a pensé... mais c crados ;) c'est censé fonctionner sans faire ça... :p


Message édité par Moustaaki le 04-06-2003 à 17:41:06
n°417226
gfive
Posté le 05-06-2003 à 08:49:38  profilanswer
 

Essaie en ajoutant ça dans ton code :  
 

Code :
  1. public void update(Graphics g) {
  2.     super.update(g);
  3.     paintComponent(g);
  4. }

 
 
Ca devrait suffire.

n°417377
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 05-06-2003 à 10:42:10  profilanswer
 

bah en fait, yavait un layout manager sur le panel de desssin :/
 
panelDessin.setLayout(null);
 
ouala, ça marche mieux comme ça :D
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Résolu] paintComponent pas appelé lors d'un resize window...

 

Sujets relatifs
[VBA/Access] Copier un formulaire d'une appli à une autre [résolu][PHP] Debutant sur session [Résolu]
Tester si un recordset est vide [RESOLU, merci]Commande avec 2 parametres : ERREUR ----------- RESOLU
MySQL -> SQL ... petite question... [résolu][TURBO PASCAL] Comment imprimer un dessin ? [Résolu]
[PHP] Exécuter des commandes en tant que root [Résolu][postgresql] [resolu] Probleme de language SQL
Pause en Java [ Résolu]Modifier l'imprimante par défaut ! : RESOLU: voila le code !
Plus de sujets relatifs à : [Résolu] paintComponent pas appelé lors d'un resize window...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR