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 :
- public class GGraphique extends JDialog implements AdjustmentListener
- {
- Dessin dessin;
- public GGraphique(JFrame parent)
- {
- super(parent,"Titre" );
- setSize(DX+10, DY+10);
- Container contentPane = getContentPane();
- contentPane.setLayout(null);
-
- dessin = new Dessin(t);
- JScrollPane conteneur = new JScrollPane(dessin);
-
- conteneur.setBounds(0, 0, DX, DY);
- conteneur.getVerticalScrollBar().setUnitIncrement(20);
- conteneur.getVerticalScrollBar().setAutoscrolls(true);
- conteneur.getVerticalScrollBar().addAdjustmentListener(this);
- contentPane.add(conteneur);
- }
- @Override
- public void adjustmentValueChanged(AdjustmentEvent arg0)
- {
- dessin.repaint();
- }
- private class Dessin extends JPanel
- {
- @Override
- public void paint(Graphics g)
- {
- //le dessin
- }
- }
- }
|
J'ai pas mal cherché sur les forum mais je n'ai rien trouvé que puisse m'aider.
Merci d'avance pour votre aide !