swing : pb de scrolling sur une JTable

swing : pb de scrolling sur une JTable - Java - Programmation

Marsh Posté le 09-08-2004 à 14:23:55    

[#ff8d00]Bonjour
pour un projet java, je dois afficher des messages reçus dans une JTable. Dans ce tableau on voudrait toujours voir le dernier élément ajouté (la barre de scroll devrait donc être à la fin du scroll pane).
 
Alors voilà, j'ai trouvé des post similaires sur le forum mais pas moyen de faire marcher ce truc.
 
Ce que j'ai fait : la JTable est placée dans un JScrollPane donc l'autoscroll est mis à "true". Ensuite à chaque fois que la table est raffraichie, dans la méthode tableChanged, je fais sélectionner la dernière ligne du tableau.
 
J'ai vu que cette dernière ligne est bien sélectionnée, mais le scroll pane ne suit pas et affiche d'autres lignes du tableau  :??:  
 
Voilou, j'espère que vous pourrez m'éclairer car là je suis pamuée dans les méandres de swing  :)

Reply

Marsh Posté le 09-08-2004 à 14:23:55   

Reply

Marsh Posté le 09-08-2004 à 18:32:29    

Y a pas une fonction dans JTable qui met la selection sur le dernier élément ?
Moi j'avais un JTextePane placé dans un JScrollPane et je voulais que le dernier message placé dans le JTextePane soit visible. Pour ca j'ai placé le curseur du JTextPane à la fin, ce qui faisait automatiquement descendre le scrollPane...
J'imagine que tu peux faire quelque chose de similaire avec les JTable...

Reply

Marsh Posté le 10-08-2004 à 15:45:23    

la sélection sur le dernier élément ça a pas marché, comme le scroll pane revenait sur une autre position, mais je viens de trouver la solution :
mettre un listener sur la scroll bar verticale, et la remettre à sqa valeur maximale à chaque changement de valeur...
merci quand même pour ton aide

Reply

Marsh Posté le 10-08-2004 à 16:04:29    

A essayer :
 

Code :
  1. JScrollBar vscroll = monJScrollPane.getVerticalScrollBar();
  2. vscroll.setValue(vscroll.getMaximum());


 
Et peut-être un petit coup de revalidate() et repaint()

Reply

Marsh Posté le 10-08-2004 à 16:20:37    

pascal34 a écrit :

A essayer :
 

Code :
  1. JScrollBar vscroll = monJScrollPane.getVerticalScrollBar();
  2. vscroll.setValue(vscroll.getMaximum());


 
Et peut-être un petit coup de revalidate() et repaint()


 
oui, c'est ce que j'ai fait à quelque chose près (j'ai mis ce code dans un listener car je ne maîtrisais pas trop les raffraichissements fréquents du scroll pane).
Merci  ;-)

Reply

Marsh Posté le 10-08-2004 à 16:56:46    

la_plume14 a écrit :

oui, c'est ce que j'ai fait à quelque chose près (j'ai mis ce code dans un listener car je ne maîtrisais pas trop les raffraichissements fréquents du scroll pane).
Merci  ;-)


 
Exact, j'avais pas bien lu ton post  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed