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

AWT/Swing Java Discussion :

Tri colonne Ineger et rendu ligne (renderer)


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Tri colonne Ineger et rendu ligne (renderer)
    Bonjour,

    j'ai un renderer qui me colorie une ligne sur deux de mon tableau qui fonctionne correctement.

    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
     
    tableau.setDefaultRenderer(Object.class, new TableCellRenderer() {
                private final DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer();
     
                @Override
                public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                    Component cel = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
                    if (row % 2 == 0) {
                        cel.setBackground(Color.WHITE);
                    } else {
                        cel.setBackground(Color.LIGHT_GRAY);
                    }
                    return cel;
                }
            });


    Je veux en même temps pouvoir trier en cliquant sur l'en-tête de mes colonnes.
    Comme:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    tableau.setAutoCreateRowSorter(true);


    ne permet que de trier des String, j'ai overirder getColumnClass
    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
     
    @Override
        public Class getColumnClass(int columnIndex) {
     
            switch (columnIndex){
                case 0:
                    return String.class;
                case 1:
                    return String.class;
                case 2:
                    return Integer.class;
                default:
                    return String.class;
            }       
        }


    Problème depuis ce tri d'entier qui fonctionne aussi du coup. mes lignes sont toutes de la même couleur dans ma colonne d'entier.


  2. #2
    Membre habitué
    Et si tu changeais ajoutais le même default renderer pour la classe Integer.class ?

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    tableau.setDefaultRenderer(Integer.class, new TableCellRenderer() {...}

  3. #3
    Membre régulier
    C'est ce que j'ai fait, oublier de passer le sujet en résolu.

###raw>template_hook.ano_emploi###