dessin du JPanel qui s'efface qd je scroll

dessin du JPanel qui s'efface qd je scroll - Java - Programmation

Marsh Posté le 06-08-2010 à 12:22:33    

Bonjour,
Le problème est le suivant :
J'ai un JDialog, qui contient un JScrollPane, qui contient lui même un JPanel.
J'ai surchargé la méthode "paint" du JPanel pour dessiner un graphique qui prend beaucoup de place, d'où le d'JScrollPane.
 
Mon problème est que lorsque j'utilise les scroll-barres pour me déplacer dans mon dessin, celui-ci s'efface et n'est pas rafraichi.
 
J'ai essayé de récupérer l'évènement "adjustmentValueChanged" du scrollbar et de faire un "repaint" explicitement mais ça n'a rien donné.
 
Voici le code très simplifié :
 

Code :
  1. public class GGraphique extends JDialog implements AdjustmentListener
  2. {
  3. Dessin dessin;
  4. public GGraphique(JFrame parent)
  5. {
  6.  super(parent,"Titre" );
  7.  setSize(DX+10, DY+10);
  8.         Container contentPane = getContentPane();
  9.         contentPane.setLayout(null);
  10.        
  11.         dessin = new Dessin(t);
  12.         JScrollPane conteneur = new JScrollPane(dessin);
  13.        
  14.         conteneur.setBounds(0, 0, DX, DY);
  15.         conteneur.getVerticalScrollBar().setUnitIncrement(20);
  16.         conteneur.getVerticalScrollBar().setAutoscrolls(true);
  17.         conteneur.getVerticalScrollBar().addAdjustmentListener(this);
  18.         contentPane.add(conteneur);
  19. }
  20. @Override
  21. public void adjustmentValueChanged(AdjustmentEvent arg0)
  22. {
  23.  dessin.repaint();
  24. }
  25. private class Dessin extends JPanel
  26. {   
  27.  @Override
  28.  public void paint(Graphics g)
  29.  {
  30.   //le dessin
  31.  }
  32. }
  33. }


 
J'ai pas mal cherché sur les forum mais je n'ai rien trouvé que puisse m'aider.
Merci d'avance pour votre aide !

Reply

Marsh Posté le 06-08-2010 à 12:22:33   

Reply

Marsh Posté le 06-08-2010 à 12:42:04    

Il me semble (je suis pas sur), que les méthodes de paint sont appellées autmatiquement.
 
Essaie plutot de faire un refresh() sur ton JSP, ou ton JPanel, ou les deux...

Reply

Marsh Posté le 06-08-2010 à 14:34:50    

Bon bon bon,
le problème venait d'une variable qui était mal initialisée dans la méthode paint.
Finalement ça marche bien, même sans surcharger les "getSize()".
Merci qd même et dslé du tps perdu !
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed