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 :

[Java] - JComboBox dans une ligne et Images dans l'autre


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    [Java] - JComboBox dans une ligne et Images dans l'autre
    Bonjour,

    J'ai un JTable avec deux lignes créé à partir d'un modèle.
    J'aimerais mettre des JComboBox dans la première ligne et des images dans la deuxième.
    Je sais mettre les images et les JComboBox dans des colonnes (une colonne de chaque), mais je n'arrive pas à gérer l'affichage en ligne.
    Dans le getTableCellRenderer, je n'arrive pas à faire des conditions du style :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    if (row==0) {
    //Affichage d'une JComboBox
    }
     
    else if {
    //Affichage d'une image
    }


    Merci d'avance pour votre aide !

    Edit :
    Réponse trouvée :
    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
     
    @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row,
                int column) {
            /**
             * AFFICHER LA JCOMBOBOX ET L'IMAGE
             */
            //Définir la JComboBox qui servira d'entête
            JComboBox<String> renderCombo = new JComboBox<>();
     
            //Afficher le composant uniquement dans la première ligne
            if (row == 0) {
                try {
                    //Créer une nouvelle combo avec juste une valeur pour faire un rendu qui ressemble à un éditeur
                    renderCombo = new JComboBox<>(new DefaultComboBoxModel<>(new String[]{"ComboEditorRenderer"}));
                } catch (NullPointerException pasSelection) {
     
                }
     
            //Renvoyer la JComboBox qui servira d'entête
            return renderCombo;
        }
        else {
                //Renvoyer une étiquette avec une image à l'intérieur
                return new JLabel(imgAtelier);
            }
        }

  2. #2
    Modérateur

    Utilise un modulo ?

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (row%2==0)
    {
    //
    }
    else
    {
    //
    }
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Merci, ça fonctionne avec la réponse au-dessus !
    Merci quand même !

###raw>template_hook.ano_emploi###