IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

[JScrollPane][JTable] déplacer l'ascenceur sur addRow


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 10
    Points : 12
    Points
    12
    Par défaut [JScrollPane][JTable] déplacer l'ascenceur sur addRow
    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.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 77
    Points : 77
    Points
    77
    Par défaut
    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.

  3. #3
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    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);
    }

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    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 :

    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)
    );
    Magguy.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JScrollPane] [JTable] Se placer à la dernière ligne
    Par wishnight dans le forum Composants
    Réponses: 9
    Dernier message: 24/12/2015, 18h42
  2. JTable et JScrollPane : Faire descendre l'ascenceur
    Par JohnNC dans le forum Composants
    Réponses: 1
    Dernier message: 27/06/2007, 22h35
  3. HTML déplacer l'écran sur 1 frame a louverture de la page
    Par Pyro57 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 19/09/2005, 09h07
  4. [JSplitPane+JScrollPane+JTable] Dimensionnement
    Par TreizeSegments dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 13/08/2004, 13h41
  5. [JSCROLLPANE][JTABLE] Probleme de raf...
    Par thibaud dans le forum Composants
    Réponses: 5
    Dernier message: 04/05/2004, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo