Probleme JAVA
Freeman
-
HackTrack -
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.
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.
A voir également:
- Probleme JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
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
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