2009-08-29 5 views

Répondre

0

Que diriez-vous d'activer un timer qui sera set the value de la barre de défilement à la valeur nécessaire?

+0

Merci J'ai essayé mais je n'arrive pas à l'obtenir –

+1

Qu'avez-vous essayé? Postez le code actuel ici (voir http://sscce.org) et expliquez les résultats que vous obtenez par opposition à ce que vous attendez. – laginimaineb

3

Cet exemple de code vous fournira ce dont vous avez besoin. Il crée un volet de défilement et fait défiler la barre de défilement horizontale. Il boucle aussi depuis le début quand c'est fait.

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JFrame; 
import javax.swing.JScrollBar; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 
import javax.swing.Timer; 

public class Test { 

    static String ss = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam lectus ligula, ultricies at varius ut, condimentum eget dui. Cras sapien justo, fermentum vulputate commodo vel, aliquam vitae neque. Mauris cursus bibendum accumsan. Etiam euismod dapibus pellentesque. Phasellus et velit nunc, eget dignissim odio. Duis et nulla eget mauris laoreet venenatis eget a purus. Phasellus congue massa in nulla pellentesque mollis. Proin id lorem ut odio fringilla laoreet et vitae nunc. Nunc non arcu justo, pellentesque posuere nulla. Ut eget sollicitudin libero. Ut at luctus arcu."; 
    static int percent = 0; 

    public static void main(String[] args) { 
     JFrame f = new JFrame(); 
     JTextArea t = new JTextArea(10,50); 
     t.setText(ss); 
     final JScrollPane s = new JScrollPane(t); 
     f.getContentPane().add(s); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.pack(); 
     f.setVisible(true); 
     Timer time = new Timer(100, new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       percent++; 
       if (percent>100) 
        percent = 0; 
       JScrollBar sb = s.getHorizontalScrollBar(); 
       sb.setValue((int)(sb.getMaximum()*(percent/100.0))); 
      } 
     }); 
     time.start(); 
    } 

} 
+0

Merci Savvas, Cette réponse m'a vraiment aidé. –

Questions connexes