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 :

Focus sur la selection d'une jTable


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut Focus sur la selection d'une jTable
    Hello tout le monde!

    Et bien j'ai un problème lors de la sélection de plusieur ligne d'une jTable.
    J'ai du redéfinir le cellRenderer pour pouvoir modifier la couleur de fond des cellules et la taille des caractère. Mais suite à cette redéfinition, lorsque je selectionne plusieur cellule de la table, la couleur ne change pas, donc je ne vois pas correctement quelles cellules sont selectionnée.

    Si je ne redéfini pas le cellRenderer, tout fonctionne correctement.

    Voila le code de mon cellRenderer
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    /*
     * NewClass.java
     *
     * Created on 24. octobre 2006, 14:08
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */
     
    package dmind.ihm;
     
    import dmind.gestion_questionnaire.Titre;
    import ihm.Ihm_creation_questionnaire;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Font;
    import javax.swing.JLabel;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableCellRenderer;
     
    /**
     * Classe pour rendre (montrer) différentes cellules dans un JTable, Paramétrée pour les besoins du projet
     * @author XXX
     */
     
    public class ColorTableCellRenderer extends DefaultTableCellRenderer {
        /**
         * Méthode permettant de rendre le modèle de cellule à appliquer
         * @param table La jTable concernée
         * @param value La valeur à assigner à la cellule à la position [ligne, colonne]
         * @param isSelected Vrai si la cellule est selectionnée
         * @param hasFocus Vrai si la cellule est focussée
         * @param row La ligne de la cellule à rendre
         * @param column La colonne de la cellule à rendre
         * @return Le modèle de cellule
         */
        public Component getTableCellRendererComponent(JTable table,
                Object value,
                boolean isSelected,
                boolean hasFocus,
                int row,
                int column)  {
            super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
            if (Ihm_creation_questionnaire.leTypeQuestionnaire.getListeQuestionsTitres().get(row) instanceof Titre) {
                if(((Titre)Ihm_creation_questionnaire.leTypeQuestionnaire.getListeQuestionsTitres().get(row)).getNiveauTitre()==1){
                    this.setBackground(new Color(101, 114, 235));
                    this.setForeground(Color.WHITE);
                    Font f = new Font("Sheriff", Font.BOLD+Font.ITALIC, 15);
                    this.setFont(f);
                } else if(((Titre)Ihm_creation_questionnaire.leTypeQuestionnaire.getListeQuestionsTitres().get(row)).getNiveauTitre()==2){
                    this.setBackground(new Color(142, 151, 235));
                    this.setForeground(Color.WHITE);
                    Font f = new Font("Sheriff", Font.BOLD, 12);
                    this.setFont(f);
                } else if(((Titre)Ihm_creation_questionnaire.leTypeQuestionnaire.getListeQuestionsTitres().get(row)).getNiveauTitre()==3){
                    this.setBackground(new Color(178, 178, 241));
                    this.setForeground(Color.WHITE);
                    Font f = new Font("Sheriff", Font.ITALIC, 12);
                    this.setFont(f);
                } else if(((Titre)Ihm_creation_questionnaire.leTypeQuestionnaire.getListeQuestionsTitres().get(row)).getNiveauTitre()==3){
                    this.setBackground(new Color(101, 114, 235));
                    this.setForeground(Color.BLACK);
                } else if(((Titre)Ihm_creation_questionnaire.leTypeQuestionnaire.getListeQuestionsTitres().get(row)).getNiveauTitre()==3){
                    this.setBackground(new Color(101, 114, 235));
                    this.setForeground(Color.BLACK);
                } else{
                    if(Ihm_creation_questionnaire.jTableau.getSelectedRow()==row){
                        this.setBackground( new Color(184, 207, 229));
                        this.setForeground(Color.BLACK);
                    }else{
                        this.setBackground(Color.WHITE);
                        this.setForeground(Color.BLACK);
                    }
                }
            }else{
                if(Ihm_creation_questionnaire.jTableau.getSelectedRow()==row)
                    this.setBackground( new Color(184, 207, 229));
                else{
                    this.setBackground(Color.WHITE);
                    this.setForeground(Color.BLACK);
                }
            }
     
            return (JLabel)this;
        }
    }
    Que dois-je faire pour que le focus revienne??

  2. #2
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Déjà, stocke ça dans une variable, ça t'évitera de l'appeler 50 fois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ihm_creation_questionnaire.leTypeQuestionnaire.getListeQuestionsTitres().get(row)
    Et sinon pour ton problème, dans ta méthode, en paramètre t'as des booleen hasFocus et isSelected, il faut les utiliser !!

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Merci bcp, ca fonctionne!

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

Discussions similaires

  1. Focus sur JFileChooser lancer depuis une jsp
    Par Meunier dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 13/09/2006, 22h23
  2. Focus sur un élément d'une combobox
    Par zoidy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/06/2006, 18h17
  3. Selection dans une JTable
    Par ythim dans le forum Composants
    Réponses: 4
    Dernier message: 11/05/2006, 14h44
  4. [Onchange] sur checkbox selection ds une liste deroulante
    Par maxxou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/01/2006, 00h17
  5. Réponses: 2
    Dernier message: 16/10/2004, 14h33

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