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] Highlight d'une ligne


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Par défaut [JTable] Highlight d'une ligne
    Quelle méthode utilisée pour dire de "highlighter" une ligne spécifique dans une JTable. Pas vu dans la Javadoc, désolé.

    merci.
    [ Modéré par vedaer ]
    -> Ajout du tag dans le titre
    [ Merci de respecter les Règles du Forum ]

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Tu veux forcer la selection d'une ligne ou faire la meme chose que dans ce sujet ?
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre expérimenté
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Par défaut
    En gros, j'ai une interface en deux parties avec un graphe d'un côté et le tableau de valeurs de l'autre côté. Je clique sur un point du graphe et la ligne correspondante dans le tableau doit s'allumer simplement. Je ne sais pas si cela revient à colorer la ligne?

  5. #5
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Dans ce cas tu peux peut etre te contenter de selectionner la ligne en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maJTable.setRowSelectionInterval(indexDeMaLigne, indexDeMaLigne);
    Pour la changer de couleur il faut passer par les TableModel et c'est plus complique !
    Par contre, avec cette solution, ca va te selectionner la ligne, mais le moidre clic sur le tableau te modifiera cette selection, alors qu'en changeant de couleur, tu peux aussi selectionner une autre ligne que celle qui a ete mise en couleur.
    Eget eclair ?
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Par défaut
    N'existe-t-il pas un moyen pour avoir une sélection permanente sur une ligne dans une JTable?
    Cette sélection ne serait déselectionnée qu'en cas de nouveau clic sur la ligne en question??

    Non, ça existe pas???

  7. #7
    Membre expérimenté
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Par défaut
    Tu fais ta propre classe qui etend DefaultTableCellRenderer.
    Dans laquelle tu redefini la methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public Component getTableCellRendererComponent(JTable table, 
                                                   Object value, 
                                                   boolean isSelected, 
                                                   boolean hasFocus, 
                                                   int row, 
                                                   int column){}
    Tu rajoute un attribut a ta classe, un booleen pour savoir si ya deja eu un click sur la ligne.
    Si ya pas eu de click tu fais un
    super.setBackground(new Color(...));
    sinon tu fais rien tu laisse la ligne avec sa couleur par defaut

    C'est le seul moyen de faire ce que tu veux

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Par défaut
    Bon j'ai utilisé la méthode setRowSelectionInterval (int, int) que xavlours m'a conseillé.
    Elle me convient mieux.

    Autre question. Quand ma ligne est highlightée, il faut aller la rechercher manuellement avec le scroll. Y a-t-il un moyen pour placer automatiquement la ligne sélectionnée d'une JTable au centre de la fenêtre visible du JScrollPane?

    Java man

  9. #9
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Helas, seule la JList offre une methode ensureIndexIsVisible(int).
    Tu peux cependant le faire en passant par les scrollBars :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    JScrollBar maJScrollBar = monJScrollPane.getVerticalScrollBar();
    maJScrollBar.setValue(maJTable.getSelectedRow() / maJTable.getRowCount() * maJScrollBar.getMaximum());
    monJScrollPane.validate(); // peut etre pas necessaire, je sais plus
    Deuxieme point (mais je l'ai jamais fait) si tu veux pas qu'on puisse changer les selections, tu peux tenter un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maJTable.removeMouseListener();
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

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

Discussions similaires

  1. [JDBTable][JTable] couleur d'une ligne
    Par thief dans le forum Composants
    Réponses: 6
    Dernier message: 21/03/2006, 09h58
  2. [JTABLE] suppression d'une ligne (prise de tete)
    Par uraxyd dans le forum Composants
    Réponses: 1
    Dernier message: 14/12/2005, 19h19
  3. [JTable] Sélection d'une Ligne
    Par lanfeustdetroll dans le forum Composants
    Réponses: 4
    Dernier message: 18/08/2005, 17h59
  4. [Debutant][JTable] Suppression d'une ligne
    Par seiryujay dans le forum Composants
    Réponses: 7
    Dernier message: 03/08/2005, 17h15
  5. [debutant] [JTable] ajout d'une ligne
    Par lanfeustdetroll dans le forum Composants
    Réponses: 1
    Dernier message: 29/06/2005, 18h19

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