J'ai une fenetre divisee en trois partie. 2 bandes, une en haut et une en bas, et le contenu de la fenetre au milieu. La partie du milieu est un jscrollpane qui marche impeccablement mais je voudrais que quand l'utilisateur fasse passer la souris (meme sans cliquer) sur la bande du haut, la barre de defilement remonte, et quand il passe la souris sur la bande du bas la barre de defilement descende.

------------------------------------------------------------------------
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
------------------------------------------------------------------------





CONTENU A FAIRE DEFILER VERTICALEMENT






-------------------------------------------------------------------------
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-------------------------------------------------------------------------

Comme sur le shema ci dessus les bandes en haut et en bas (qui sont des jpanels) prennent toute la largeur de la fenetre. Avez vous une idée de comment faire ça ?

downPanelMouseEntered est mon jPanel de la bande du bas.

Pour l'instant je suis parti sur quelque chose comme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
private void downPanelMouseEntered(java.awt.event.MouseEvent evt) {     
while(scroll == 1){                                  
try{
jScrollPane.getVerticalScrollBar().setValue(jScrollPane.getVerticalScrollBar().getValue()+1);}
Thread.currentThread().sleep(100);
}catch(InterruptedException ie){}
}
}
 
 
 
private void downPanelMouseExited(java.awt.event.MouseEvent evt) {                                      
        scroll = 0;
    }
Le sleep est pour éviter que la barre de defilement descende trop vite tout simplement.

Bien sur ca ne marche pas pour plusieurs raisons, le jScrollPane.getVerticalScrollBar().setValue ne marche pas et me me met des erreurs quand je lance passe le curseur de la souris sur la bande du bas. Et puis il y a un probleme de Thread je pense avec le while(scroll == 1) qui monopolise le thread et ne permet pas de sortir de la boucle..
Avez vous des idées pour faire ce que je voudrais faire?