Tous comme SheikYerbouti, j'essaye de faire une JDialog avec un affichage comme les crédits des jeux ou la fin des films.

Donc, j'ai fais un JScrollPane, je l'ai rendu invisible. Et maintenant, dans un thread je modifie le setValue toutes les 10ms.

En temps normal ça marche mais si j'applique le L&F substance ça ne marche plus. J'ai consulté pas mal de post et ils disent d'utiliser un timerSwing. (lien)
Mais mes multiples essais dans ce sens se terminent toujours par des échecs ...

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
16
17
18
19
20
21
    public void run() {
        //Marche sans le L&F
        int i =0;
        while(i<1000){
            try {Thread.sleep(10);}catch( InterruptedException exc ) {}
            scroll.getVerticalScrollBar().setValue(i);
            i++;
        }
 
 
        //Marche pas ... -_-'
        SwingUtilities.invokeLater(new Runnable() {
          public void run() {
            int i =0;
            while(i<1000){
            try {Thread.sleep(10);}catch( InterruptedException exc ) {}
            scroll.getVerticalScrollBar().setValue(i);
            i++;
        }
        }});       
    }
Quelqu'un peut il m'expliquer où est le problème?


Edit : Au passage, comment fait-on pour empêcher l'utilisateur de bouger le scrollPane avec la molette de la souris?
Edit : scroll.setWheelScrollingEnabled(false);