Bonjour,
J'aimerais postionner l'ascenceur du JScrollPane de telle façon que la dernière ligne ajoutée à la JTable soit toujours visible.
Quelqu'un sait-il comment faire?
Merci d'avance,
Magguy.
Bonjour,
J'aimerais postionner l'ascenceur du JScrollPane de telle façon que la dernière ligne ajoutée à la JTable soit toujours visible.
Quelqu'un sait-il comment faire?
Merci d'avance,
Magguy.
salut,
Si elle doit toujours etre visible, tu peux sois faire un Thread qui la replace tout le temps si elle n'est pas au bout, soit la replacer a chaque opération qui pourrait la déplacer (suppression de ligne, ajout ...)
Pour ce faire, tu peux utiliser la méthode setViewPosition() sur le Viewport de ton scrollPane.
Tu dois lui fournir un Point p qui peut etre la taille du viewport si tu trouves rien de mieux et s'il n'y a pas d'autres composants dans le scrollPane que la table. Sinon, tu dois récupérer la position de ta table (ses coordonnées dans le viewport), puis récupérer la position de la ligne relative a la table.
pour rendre une cellule d'une table visible :
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
21
22
23 // Assumes table is contained in a JScrollPane. Scrolls the // cell (rowIndex, vColIndex) so that it is visible within the viewport. public void scrollToVisible(JTable table, int rowIndex, int vColIndex) { if (!(table.getParent() instanceof JViewport)) { return; } JViewport viewport = (JViewport)table.getParent(); // This rectangle is relative to the table where the // northwest corner of cell (0,0) is always (0,0). Rectangle rect = table.getCellRect(rowIndex, vColIndex, true); // The location of the viewport relative to the table Point pt = viewport.getViewPosition(); // Translate the cell location so that it is relative // to the view, assuming the northwest corner of the // view is (0,0) rect.setLocation(rect.x-pt.x, rect.y-pt.y); // Scroll the area into view viewport.scrollRectToVisible(rect); }
Merci à vous deux,
j'ai résolu mon problème.
En général, je veux voir la dernière ligne de ma table.
Voici le code :
Magguy.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 JViewport viewport = (JViewport)scroll.getViewport(); viewport.setViewPosition( new Point( viewport.getPreferredSize().width, viewport.getPreferredSize().height) );
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