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 :

Controles transparents dans un composite


Sujet :

SWT/JFace Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Points : 89
    Points
    89
    Par défaut Controles transparents dans un composite
    Bonjour,

    J'aimerais pouvoir rendre le background des contôles (labels etc...) transparents dans un shell. Ces contrôles sont situés dans un composite qui est garni par une image de fond. L'objectif est de voir l'image de fond dans les labels qui se trouvent dans ce composite (à la place d'un rectangle blanc opaque).
    J'ai tenté ceci mais sans résultats :
    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
     
     
     s = new Shell(viewer.getTable().getDisplay(), SWT.PRIMARY_MODAL | SWT.NO_TRIM | SWT.TOOL);
     
    composite1 = new Composite(s, SWT.INHERIT_FORCE);//tentative numero1
    				FormLayout composite1Layout = new FormLayout();
    				composite1.setLayout(composite1Layout);
    				FormData composite1LData = new FormData();
    				composite1LData.width = 300;//230
    				composite1LData.height = 138;//104
    				composite1LData.left =  new FormAttachment(2, 1000, 0);
    				composite1LData.top =  new FormAttachment(0, 1000, 0);
    				composite1LData.right =  new FormAttachment(1000, 1000, 0);
    				composite1LData.bottom =  new FormAttachment(1000, 1000, 0);
     
    				composite1.setBackgroundImage(Activator.getDefault().getImageRegistry().get("bgpop"));
    				composite1.setLayoutData(composite1LData);
    				composite1.setBackgroundMode(SWT.INHERIT_FORCE); //tentative numero2
     
    //....suite, insertion des labels etc...
    Ce sujet a déjà été abordé, ici (exemple : http://www.developpez.net/forums/d37...nce-composite/)ou sur d'autres forums mais je n'ai pas trouvé de réponse claire et précise ou alors je n'arrive pas à obtenir le résultat voulu.

    Je pensais au départ que cela aurait pu être du à une incompatibilité de version de SWT ou autre, mais j'ai testé cet exemple http://www.sourcexchange.de/?page=Sh...e_language_id= ...et là ça fonctionne...

    Quelqu'un a-t-il une idée de ce qui cloche dans mon code? un autre moyen de faire?

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 33
    Points : 38
    Points
    38
    Par défaut
    J'avais exactement le même problème pour une fenêtre de dialogue (extends Dialog) et je l'ai résolu de la façon suivante :

    Dans les variables d'instance, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        private Composite                   form    = null;
        private Image                       bgImage = null;
    Ensuite, la méthode "createDialogArea" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        /**
         * {@inheritDoc}
         */
        @Override
        protected final Control createDialogArea(final Composite parent) {
            this.form = GuiUtils.fillCompositeWithInputs(parent, this, this.inputs);
            // la methode de la ligne du dessus renvoie un composite rempli avec des labels, des textfields, etc...
            this.form.setBackgroundMode(SWT.INHERIT_FORCE);
            if (this.bgImage != null) {
                this.form.setBackgroundImage(this.bgImage);
            }
            return this.form;
        }

Discussions similaires

  1. [XL-2007] png et jpeg avec transparence dans un control image
    Par patricktoulon dans le forum Contribuez
    Réponses: 0
    Dernier message: 21/10/2012, 22h16
  2. Réponses: 4
    Dernier message: 04/08/2010, 00h59
  3. [C#] Control user dans le code caché
    Par pc152 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 07/05/2004, 06h36
  4. Transparence dans un dégradé
    Par WriteLN dans le forum Flash
    Réponses: 2
    Dernier message: 27/10/2003, 16h42
  5. [VB6] [Interface] Nbre de contrôles maxi dans une feuille
    Par Midou dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/10/2002, 16h09

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