Probleme JAVA

Freeman -  
 HackTrack -
Dans l'interface (swing) d'un programme JAVA , j'ai une TextArea et une JList qui sont chacun dans un Scroll Pane , donc quand il y a beaucoup de donnee une scroll bar s'affiche.
Ma question et comment forcer la scroll bar verticale a rester en bas quand le prog rajoute du texte, en fait je veux pourvoir lire le texte rajouter sans devoir deplaer la scroll bar avec la souris.

Merci d'avance.

1 réponse

  1. HackTrack
     
    Voilà un exemple qui, je l'espère, répond à ta demande:

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;

    /**
    *
    * @author HackTrack
    * @version 1.0
    */

    public class ScrollTester extends JFrame{
    private Container c;
    private JList jl;
    //listDatas contient les données qui apparaîtront dans ta JList
    private ArrayList listDatas;

    public ScrollTester() {
    super("Scroll Tester");
    initialize();
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    private void initialize(){
    listDatas = new ArrayList();
    //on construit la liste des données à afficher
    for(int i=0 ; i<20 ; i++){
    listDatas.add("Ligne " + i);
    }
    c = getContentPane();
    c.setSize(50,100);
    //on initialise la liste
    jl = new JList(listDatas.toArray());
    JScrollPane jsp = new JScrollPane(jl);
    c.add(jsp);
    }

    private void startApp(){
    String toAppend=null;

    for(int i=0 ; i<6 ; i++){
    //on demande à l'utilisateur d'entrer du texte
    toAppend= JOptionPane.showInputDialog(null,"Entrez du texte");
    //on ajoute la donnée entrée à la liste de données
    listDatas.add(toAppend);
    //on demande un rafraîchissement de la vue
    update();
    }
    }

    private void update(){
    //on met à jour les données de la liste
    jl.setListData(listDatas.toArray());
    /* C'est dans la ligne qui suit que tu définis (grâce à "true"), que ta liste doit
    automatiquement défiler*/
    jl.setSelectedValue(listDatas.get(listDatas.size()-1),true);
    jl.validate();
    }

    public static void main (String args[]) {
    ScrollTester tester = new ScrollTester();
    tester.pack();
    tester.show();
    tester.startApp();
    }
    }

    ;-)
    HackTrack
    0