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

SWT/JFace Java Discussion :

Couleur d'un item d'un Combo


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Par défaut Couleur d'un item d'un Combo
    Bonjour,

    j'aimerais savoir si il est possible avec un Combo de modifier la couleur de fond de seulement certains items.

    J'aimerais vraiment garder un Combo car celui-ci permet d'afficher agréablement une longue liste.

    J'ai effectué quelques recherches mais je ne tombe que sur des réponses pour les ListViewer que j'aimerais éviter.

    Merci d'avance!

  2. #2
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Bonjour,

    Pourquoi tu ne passes pas par un ComboViewer et un LabelProvider qui ferait ce dont tu as besoin?

    Voilà, à+
    Gueritarish

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Par défaut
    Je ne connaissais pas ces éléments, je ne travail pas avec SWT depuis longtemps.

    Je vais tester plus tard ce que tu me propose, j'ai beaucoup de choses à faire. Je te tiendrais au courant.

    Merci!

  4. #4
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Ce ne sont pas des composants SWT, ce sont des composants JFace ^^
    JFace est une sur-couche de SWT qui te facile la vie pour "gestion" de tes composants SWT. Un ComboViewer utilise un Combo mais permet une gestion plus facile de celui-ci. Par exemple, avec un LabelProvider tu pourras définir la façon dont sont affiché les éléments contenu dans ton Viewer.
    Keulkeul a fait un très bon tutoriel là dessus... À regarder si tu as 2 minutes ^^

    Voilà, à+
    Gueritarish

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Par défaut
    J'ai regardé rapidement mais je n'ai pas encore réussi.

    Cette coloration n'est pas indispensable pour le programme, j'aimerais la faire pour une meilleur ergonomie.

    Je reviendrais donc sur le sujet une fois que le programme fonctionnera.

    J'ai deux semaines de vacances samedi donc ça risque de ne pas être tout de suite^^.

    Merci pour le lien je pense qu'il me servira beaucoup.

  6. #6
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Par défaut
    Citation Envoyé par Gueritarish Voir le message
    Ce ne sont pas des composants SWT, ce sont des composants JFace ^^
    JFace est une sur-couche de SWT qui te facile la vie pour "gestion" de tes composants SWT. Un ComboViewer utilise un Combo mais permet une gestion plus facile de celui-ci. Par exemple, avec un LabelProvider tu pourras définir la façon dont sont affiché les éléments contenu dans ton Viewer.
    Keulkeul a fait un très bon tutoriel là dessus... À regarder si tu as 2 minutes ^^

    Voilà, à+
    Gueritarish
    Tu pourrais nous donner un exemple simple.
    merci

  7. #7
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Au temps pour moi, le LabelProvider pour un ComboViewer ne permet de gérer que le texte affiché. Il ne permet donc de gérer ni une couleur de fond ni une couleur de texte...
    C'était donc une mauvaise piste... Désolé pour ceux qui y ont cru.
    Le code utilisé pour le test :
    Code Java : 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
    87
    88
     // Constants
        /**
         * The constant for the GREEN value.
         */
        private static final String GREEN_CONSTANT = "Green";
     
        /**
         * The constant for the RED value.
         */
        private static final String RED_CONSTANT = "Red";
     
        /**
         * The constant for the YELLOW value.
         */
        private static final String YELLOW_CONSTANT = "Yellow";
     
        /**
         * The display used in the application.
         */
        private static Display display;
     
        /**
         * The LabelProvider for the ComboViewer.
         */
        public static class MyLabelProvider extends LabelProvider implements
            IColorProvider {
     
            /**
             * {@inheritDoc}
             */
            @Override
            public String getText(final Object element) {
                return super.getText(element);
            }
     
            /**
             * {@inheritDoc}
             */
            public Color getBackground(final Object element) {
                Color background = null;
                if (RED_CONSTANT.equals(element)) {
                    background = display.getSystemColor(SWT.COLOR_RED);
                } else if (GREEN_CONSTANT.equals(element)) {
                    background = display.getSystemColor(SWT.COLOR_GREEN);
                } else if (YELLOW_CONSTANT.equals(element)) {
                    background = display.getSystemColor(SWT.COLOR_YELLOW);
                }
                return background;
            }
     
            /**
             * {@inheritDoc}
             */
            public Color getForeground(final Object element) {
                System.out.println("Test");
                return null;
            }
        }
     
        /**
         * @param args the entries of the main.
         */
        public static void main(final String[] args) {
            display = new Display();
            Shell shell = new Shell(display);
            shell.setLayout(new FillLayout());
            Composite composite = new Composite(shell, SWT.NONE);
            composite.setLayout(new GridLayout());
            Combo combo = new Combo(composite, SWT.BORDER);
            combo.setLayoutData(new GridData());
     
            ComboViewer viewer = new ComboViewer(combo);
            viewer.setContentProvider(new ArrayContentProvider());
            viewer.setLabelProvider(new MyLabelProvider());
     
            String[] input =
                new String[] { RED_CONSTANT, GREEN_CONSTANT, YELLOW_CONSTANT };
            viewer.setInput(input);
     
            shell.pack();
            shell.open();
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch()) {
                    display.sleep();
                }
            }
            display.dispose();
        }
    Voilà, à+
    Gueritarish

Discussions similaires

  1. Récupérer la couleur d'un item de ListBox
    Par defluc dans le forum Delphi
    Réponses: 3
    Dernier message: 15/05/2006, 17h55
  2. Couleur dun TListView.Item.SubItem
    Par Soulama dans le forum Composants VCL
    Réponses: 20
    Dernier message: 18/03/2006, 23h03
  3. Changer dynamiquement la couleur d'un item d'une listview
    Par little_cypress dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/11/2004, 14h46
  4. Changer la couleur d'un item sélectionné dans TTreeview?
    Par nmathon dans le forum Composants VCL
    Réponses: 1
    Dernier message: 21/10/2004, 15h40
  5. [VB.NET] Choisir les valeurs des items d'un combo box?
    Par Eithelgul dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/06/2004, 10h13

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