Scrolling problem !

Scrolling problem ! - Java - Programmation

Marsh Posté le 24-11-2008 à 11:53:43    

Bonjour
 
J'ai un gros soucis que je n'arrive pas à résoudre. Je m'arrache les cheveux dessus.
 
J'ai un scrollPane, avec une image dedans.
Je veux positionner le ViewPort bien correctement quand je zoome dans mon image.
Grace à mon facteur de zoom, je fais ça :
 

Code :
  1. skyScrollPane.getVerticalScrollBar().setValue((int)(zoom*skyScrollPane.getVerticalScrollBar().getValue()));
  2. skyScrollPane.getHorizontalScrollBar().setValue((int)(zoom*skyScrollPane.getHorizontalScrollBar().getValue()));


 
Ca ne marche pas. Pire, ca ne positionne meme pas les scrollbar n'importe où, j'ai l'impression que ca ne change pas la position.
J'ai fait des tests :
Par exemple ma scrollBar vertical va de 0 à 1966 comme valeurs.
Meme en faisant un setValue égal à 1300 par exemple, la scroll bar reste vers le haut.
 
help !

Reply

Marsh Posté le 24-11-2008 à 11:53:43   

Reply

Marsh Posté le 04-12-2008 à 15:44:36    

bon j'ai trouvé la solution.
En fait, il faut utiliser SwingUtilities.invokelater() et mettre ce qu'on veut faire dans la methode run de l'objet Runnable qu'on doit passer à iinvokeLater. Tout ça pour garantir qu'il fasse l'opération au bon moment, sinon ca maarche pas. Au passage, la methode scrollRectToVisible (à appliquer au composant dans le VIewport) est meilleure.
 
en clair, ca donne :

Code :
  1. SwingUtilities.invokeLater(new Runnable() {
  2. public void run() {
  3.      skyImage.scrollRectToVisible(new Rectangle(x,y,width,height));
  4. }
  5. });


Reply

Sujets relatifs:

Leave a Replay

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