Bonjour,
Je débute en java.... alors d'avance pardon pour cette question.
Je voudrais modifier la position de l'ascenseur d'une JScrollPane et je n'y arrive pas.
Y a t-il une méthode capable de faire cela ?
Est ce possible ?
Merci d'avance.
Bonjour,
Je débute en java.... alors d'avance pardon pour cette question.
Je voudrais modifier la position de l'ascenseur d'une JScrollPane et je n'y arrive pas.
Y a t-il une méthode capable de faire cela ?
Est ce possible ?
Merci d'avance.
J'ai essayé cette méthode et ça ne fonctionne pas ici.
J'ai aussi essayé d'autres façons et je n'arrive toujours pas à changer la position de l'ascenseur
http://www.codeguru.com/forum/showth...hreadid=295333
Peut-être je ne fais pas les opérations dans le bon ordre?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 JTextArea m_resultArea = new JTextArea(30,51); JScrollPane scrollingArea = new JScrollPane(m_resultArea); m_resultArea.setText(texte); scrollingArea.getVerticalScrollBar().setValue(1);
Je veux que l'ascenseur soit en haut et non en bas.
g0ldenrno
Essaye :
m_resultArea.setCaretPosition(0);
ça te positionne l'ascenseur en haut.
Si tu veux le positionner ailleurs sans utiliser le caret, là par contre ça se gâte. Je confirme que :
scrollPane.getVerticalScrollbar().setValue(...);
ca ne marche pas, ça fait un moment que je cherche mais pas moyen...
Peut-être ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Point p = ...; tonScrollPane.getViewport().setViewPosition(p);
Quelqu'un a t-il trouve la solution?
Je suis ds le meme cas sauf que je souhaite à l'inverse que mon scrollpane reste en bas pour mettre en place un tchat!
Aucune des solutions proposées résoud mon problème.
Merci d'avance
Salut,
j'ai eu le même problème avec un JScrollPane contenant une JTextArea.
J'ai testé de déplacer la JScrollBar avec un setValue et en y passant sa value min... Sans grand succès.
J'ai abordé le prob différemment. Le truc c'est que quand j'envois du texte, le curseur se positionne à la fin de la JTextArea ce qui fou la scroll bar en bas.
Donc, j'ai simplement foutu un listener qui après changement du text, met le curseur au début.
Du coup ma scroll bar se met au début.
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 /** * The <code>PropertyChangeCaretListener</code> class. */ private class PropertyChangeCaretListener implements PropertyChangeListener { /** * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) */ public void propertyChange(PropertyChangeEvent evt) { Object obj = evt.getSource(); if (obj instanceof JTextArea && obj != null){ ((JTextArea) obj).setCaretPosition(0); } } }Pour mettre la position à la fin je ferai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 textArea.addPropertyChangeListener(new PropertyChangeCaretListener());
Je n'ai pas tester pour la position en fin.
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 /** * The <code>PropertyChangeCaretListener</code> class. */ private class PropertyChangeCaretListener implements PropertyChangeListener { /** * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) */ public void propertyChange(PropertyChangeEvent evt) { Object obj = evt.getSource(); if (obj instanceof JTextArea && obj != null){ JTextArea textArea = (JTextArea) obj; // A TESTER... textArea.setCaretPosition(textArea.getSelectionEnd()); } } }
Maintenant si dans ton JScrollPane, dans le cas d'un chat, tu as une JTextArea en haut et un JTextField en bas. Des que tu vas ajjouter un texte dans ton area, le focus va etre en haut donc la bar va remonter. Soit tu désactive l'auto scroll de ta JScrollBar (ce qui est le plus propre mais quand j'ai essayé j'ai eu des merdes), Soit tu joues sur les composants et tu fou ton focus sur le composant du bas à savoir le JTextField.
Bon courage !!
J'ai trouvé cette ligne de commande toute simple :
ton_JTextArea.setCaretPosition(0);
Cela fonctionne très bien !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager