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 :

[JTable]Positionner la vue sur une ligne


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 14
    Par défaut [JTable]Positionner la vue sur une ligne
    Bonjour,

    Mon problème est somme toute assez classique, je désire positionner la vue sur
    une ligne de ma JTable en fonction du texte saisi dans un JTextField.

    Mais pas moyen de mettre la main sur la façon de positionner la vue ..

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    A mettre dans un actionPerformed lié à ton JTextField de façon a appeller la méthode a chaque modification de ton champ.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maJTable.setRowSelectionInterval(ligne1, ligne1);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 14
    Par défaut
    Merci pour ta réponse mais je pense avoir manqué de clarté dans ma question:

    En fait ce que je désire obtenir c'est le positionnement de la scrollBar de ma JTable à la

    position de l'élement recherché.

    Je pense avoir creusé un bout de solution avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //row et col pour la position de la cellule à 'voir'
    Rectangle posRelativeDeLaCellule = maTable.getCellRect(row, col, true);
     
    //Réajustement 'a la louche' pour centrer la vue sur la ligne
    if (posRelativeDeLaCellule.y>95) posRelativeDeLaCellule.y+=95;     
     
    maTable.scrollRectToVisible(posRelativeDeLaCellule);
    maTable.setRowSelectionInterval(row,row);
    maTable.repaint();
    Je me demande s'il n'y a pas une manière plus conventionnelle d'implémenter ca..

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    Ha oui en effet j'avais pas compris çà

    Je penses que ta méthode est viable et je ne sais pas s'il y a moyen de contrôler une JScrollBar sur base de son contenu autrement.

    D'autres pourront sans doute mieux t'aider que moi, désolé

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 14
    Par défaut
    Le problème c'est que la fonction scrollRectToVisible() combinée à getCellRect() se comporte de façon assez erratique.
    En effet parfois la ligne sélectionnée est affichée en haut du conteneur, parfois en bas. De fait le centrage devient impossible.
    Ces deux images en guise d'exemple :
    Nom : casn1.jpg
Affichages : 107
Taille : 22,7 Ko
    Nom : casn2.jpg
Affichages : 91
Taille : 21,1 Ko

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    Fait en sorte que ton Rectangle soit aussi grand que la vue. Le truc c'est que getCellRect te renvoi un Rectangle pour ta cellule mais du coup lorsque tu appelles la méthode scrollRectToVisible, il peut la mettre ou il veut et c'est en effet erratique

    Si tu pars du Rectangle de ta cellule, que tu recupères le Rectangle de la 11e ligne (d'après ton screen) maximum et selon le nombre de ligne restante, tu peux créer une Rectangle qui englobe les 2 précédent et le passer a scrollRectToVisible qui n'aura pas d'autre choix que de l'affiche complètement.

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

Discussions similaires

  1. [JTable] maintien du focus sur une ligne
    Par rednik dans le forum Composants
    Réponses: 3
    Dernier message: 20/08/2008, 17h37
  2. [JTable] centrer la vue sur une ligne
    Par vanhel dans le forum Composants
    Réponses: 1
    Dernier message: 20/08/2008, 12h12
  3. comment se positionner sur une ligne de table mysql ?
    Par pas30 dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/01/2007, 13h43
  4. Création d'un menu sur une ligne de JTable
    Par devAd dans le forum Composants
    Réponses: 3
    Dernier message: 16/11/2006, 10h49
  5. [CSS][firefox]positionner mes div sur une seule ligne
    Par hansaplast dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 29/03/2006, 14h44

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