2013-02-15 3 views

Répondre

3

Vous pouvez lier la propriété vScrollBar de scrollpane1 (sp1) et définir la valeur modifiée sur une autre propriété vScrollbar de scrollpane.

Exemple de code: ce code modifie automatiquement la position SP2 vScrollbar lorsque la position de la vScrollbar Sp1 est activée.

DoubleProperty vPosition = new SimpleDoubleProperty(); 
    vPosition.bind(sp1.vvalueProperty()); 
    vPosition.addListener(new ChangeListener() { 
     @Override 
     public void changed(ObservableValue arg0, Object arg1, Object arg2) { 
      sp2.setVvalue((double) arg2); 

     } 
    }); 

Conseil pour obtenir une barre de scrolll pour faire défiler deux volets de défilement: Définir une barre de défilement verticale, puis cacher (peut être réglé opcaity à zéro ou quelque chose ..) vscrollbars pour deux Scrollpanes. puis liez les modifications de la barre de défilement définies et définissez les valeurs chnagées sur les deux scrollpanes vscrollbars comme ci-dessus.

+0

Cela semble être une excellente idée, mais pour une raison quelconque, cela ne fonctionne pas pour moi. Tout ce que j'ai fait est de changer la variable Names pour aller avec mon programme, à part que j'ai copié-collé le code dans la méthode initalize. La méthode 'changed' n'est apparemment jamais appelée. Des idées pour lesquelles cela pourrait être? – Maverick283

3

La réponse de @invariant n'a pas fonctionné pour moi. Mais le code écrit ci-dessous a fonctionné.

ScrollPane sp1 = new ScrollPane(); 
ScrollPane sp2 = new ScrollPane(); 
sp1.hvalueProperty().bindBidirectional(sp2.hvalueProperty()); 

Avec la liaison de deux composants l'un à l'autre, ils défilent horizontalement ensemble. Cela fonctionnerait pour le cas vertical.

Questions connexes