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

AWT/Swing Java Discussion :

Superposition de plusieurs Container


Sujet :

AWT/Swing Java

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut Superposition de plusieurs Container
    Bonjour,

    Ma question est la suivante, est-ce que les containers gèrent eux mêmes leur superposition où faut-il le faire à la main et si oui faut-il le leur demander et comment ?

    Mon problème est que j'appelle un nombre indéterminé de fois et à n'importe quelle position la fonction clearRect() dans un Container et que je ne veux pas que cet appel efface ce qui est affiché sur un ou plusieurs autres Container(s) qui peuvent être situés derrière.

    Je dois utiliser les classes les plus hautes dans la hiérarchie des classes, je dois tout faire pour ne pas utiliser de composants tout fait.

    Je sèche complètement, ca fait plusieurs heures que j'essaie de trouver une solution mais impossible alors si quelqu'un en a une, n'hésitez pas !

    Autre contrainte, je n'ai pas accès au classes de java.swing et je n'ai que celles ci de java.awt :

    java.awt
    java.awt.color
    java.awt.event
    java.awt.image

    Merci d'avance de votre aide.

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Quel est ton but en fait?

    Le clearRect ne nettoie normalement que ce qui est contenu dans le contexte graphique du conteneur sur lequel il est appelé.

    La question étant, où fais tu ton clearRect, d'où proviennent les graphics sur lesquels tu le fais.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    Mon but est de réaliser des animations.

    Mes appels à clearRect sur des dessins se font dans le même Container où sont situés ces dessins que je veux effacer et le problème et que ces appels effacent aussi les autres dessins dans les autres Container.

    Si je comprends bien ce que tu dis, les Containers sont normalement censé gérer eux-mêmes leur contexte graphique et ne modifient pas celui des autres. Dans ce cas le problème vient peut-être du fait que j'utilise monContainer.drawImage et que donc ca ne passe peut-être pas par le contexte graphique du Container et donc lors des appels à clearRect il remet ce qu'il pense qu'il y a : rien.

    C'est possible que ca soit ca ?

    Merci de ton aide.

  4. #4
    Membre expérimenté Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Par défaut
    Quand nous faisons un clearRect, le rectangle se remplit de la couleur background. Si cette couleur est opaque, évidemment on ne voit plus les composants qui sont derrière!

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Comment récupères tu les graphics que tu utilises?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    Comment récupères tu les graphics que tu utilises?
    Je connais toujours les Container qui sont affichés, donc c'est avec la fonction getGraphics du container que je récupère les graphiques.

    Quand nous faisons un clearRect, le rectangle se remplit de la couleur background. Si cette couleur est opaque, évidemment on ne voit plus les composants qui sont derrière!
    Alors y a t-il une méthode qui se charge elle même de la superposition ou je dois moi même réafficher ce qu'il y avait derrière ce que je viens d'effacer. C'est uniquement pour cela que j'ai utilisé des containers, c'est pour ne pas avoir à gérer ca.

Discussions similaires

  1. [XL-2010] Superposition de plusieurs graphes dans un seul
    Par Matrixmax dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 19/02/2013, 18h44
  2. [Débutant] superposition entre plusieurs images
    Par crespo 12 dans le forum Images
    Réponses: 1
    Dernier message: 25/06/2012, 12h57
  3. [AC-2007] [SQL/VBA] Superposition de plusieurs graphiques
    Par Tifriis dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/12/2010, 10h19
  4. Réponses: 1
    Dernier message: 09/11/2009, 12h30
  5. Superposer plusieurs containers
    Par jaujau dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 28/03/2008, 16h27

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