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 :

Personnaliser un Tree (image, pas de texte ect)


Sujet :

SWT/JFace Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 398
    Points : 710
    Points
    710
    Par défaut Personnaliser un Tree (image, pas de texte ect)
    Salut,

    en fait je voudrais savoir si cest possible de personnaliser un Tree
    en remplacant le texte par des images (deja fait mais faut la redimensionner, il le texte est vide donc le selecteur violet surligne un caractere vide, cest tres moche), si est possible de virer le [+] et [-] quand on deploie ou non une section ...
    bref, faire un truc joli sans texte, avec des images en gros

    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 187
    Points : 434
    Points
    434
    Par défaut
    Bonjour,

    Tu peux modifier cette l'apparence d'un arbre en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    tree.addPaintListener(new PaintListener() {
    	//Méthode appelée une fois par noeud
    	@Override
    	public void paintControl(PaintEvent e) {
    		// Dessin du noeud
    	}
    });
    Par contre, l'apparence d'un Tree, ou de n'importe quel contrôle du package org.eclipse.swt.widgets dépend de la plateforme d'exécution du programme (windows, mac, etc...) : si tu la modifie, ce qui peut être "joli" chez quelqu'un peut rapidement devenir une horreur chez le voisin...

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Points : 379
    Points
    379
    Par défaut
    Une autre solution (plus précise) pour personnaliser un widget de type Tree ou Table est la suivante :

    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
     
    Tree tree = new Tree();
    tree.addListener(SWT.PaintItem, new Listener() {
     
        @Override
        public void handleEvent(Event e) {
            int x = e.x;
            int y = e.y;
            int width = e.width;
            int height = e.height;
            GC gc = e.gc;
            Tree tree = (Tree) e.widget;
            TreeItem item = (TreeItem) e.item;
            // à ce moment on a toutes les infos pour redessiner l'item... à toi de faire le travail
        }
     
    });
    Pour optimiser tout ça tu peux aussi écouter l'événement EreaseItem qui comme sont nom l'indique est levé lorsque l'item doit être effacé.

    Si tu as besoin de définir toi même la taille d'un item tu peux procéder de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    tree.addListener(SWT.MeasureItem, new Listener() {
     
        @Override
        public void handleEvent(Event e) {
            TreeItem item = (TreeItem) e.item; // si nécessaire
            e.width = 100; // on défini la largeur de l'item
            e.height = 20; // on défini la hauteur de l'item
        }
     
    });
    Je n'ai pas le temps de vérifier mais d'aprés mes souvenir c'est comme ça qu'il faut procéder (et les rendus peuvent être trés bon d'une plateforme à l'autre si tu ne fais pas des choses trop exotiques).

    Voilà, si j'ai fais une erreur n'hésite pas à me le dire.

Discussions similaires

  1. personnaliser un dossier : image qui ne s'affiche pas
    Par arnofly dans le forum Windows 7
    Réponses: 1
    Dernier message: 19/05/2010, 18h27
  2. [CSS][IE]image dans input text
    Par lejert dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 23/05/2009, 01h31
  3. boîte de dialogue avec image de fond + texte
    Par Eugénie dans le forum MFC
    Réponses: 13
    Dernier message: 31/08/2004, 13h32
  4. Réponses: 6
    Dernier message: 28/05/2004, 19h45

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