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

Graphisme Java Discussion :

mettre une image en arriere plan


Sujet :

Graphisme Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Points : 36
    Points
    36
    Par défaut mettre une image en arriere plan
    bonjour,

    voila jai une image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    Image image = toolkit.getImage("cat.gif");
    
    et jai une methode paint :
    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
    
    publicvoid paint(Graphics g)
    {
    g.drawImage(image, 0, 0, this);
    setBackground(new Color(153,208,181));
    Dimension d = getSize();
    if ((offGraphics == null) || (d.width != offDimension.width)
    || (d.height != offDimension.height))
    {
    offDimension = d;
    offImage = createImage(d.width, d.height);
    offGraphics = offImage.getGraphics();
    }
    offGraphics.setColor(getBackground());
    offGraphics.fillRect(0, 0, d.width, d.height);
    offGraphics.setColor(getForeground());
    dessinerLesObjets(offGraphics);
    g.drawImage(image, 0, 0, this);
    

    ceci affiche bien mon image mais en 1er plan et je voudrai la mettre en second plan pour pouvoir ressiner dessu...
    comment faire??

  2. #2
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    allez pour le plaisir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    try{
       MediaTracker media = new MediaTracker(tonComponent);
       Image img = ImageIO.read(new File(tonPath));
       media.addImage(img,0);
       media.waitForID(0);
    }catch(InterruptedException e){
    }
    Voilà voilà

    mavina
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    jai essayer ton code mais cela ne fonctione pa car
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IOImage.read(new File(source));
    peut generer un IOException et non une interrupted exception...
    donc le try catch ne fonctione pas..

    et pourrai tu mexpliquer le media tracker en quelque ligne?,

  4. #4
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    euh oui, mets Exception e a la place de InterruptedException e, j'ai modifié ce code qui a la base utilisait le Toolkit (:s)

    pour ce qui est du mediaTracker, il suffit de lire la javadoc ^^
    The MediaTracker class is a utility class to track the status of a number of media objects. Media objects could include audio clips as well as images, though currently only images are supported.
    En gros, il te permet de manipuler et de changer le statut des images et des sons...
    la Javadoc propose des exemple :
    http://javasearch.developpez.com/j2s...iaTracker.html

    voilà voilà

    mavina
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    voici ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    publicvoid paint(Graphics g)
    {
    try{
    MediaTracker media = new MediaTracker(this);
    Image img = ImageIO.read(new File("cat.gif"));
    media.addImage(image,0);
    media.waitForID(0);
    }catch(Exception e){
    }
    }
    
    et la classe dans laquel est cette fonction extends JPanel

    mais cela ne maffiche rien??
    est ce normal?

  6. #6
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Construis le dans ton constructeur et pas dans paint...
    Ca ne se construit qu'une fois.

    par contre, media.waitForId(0) se fait a chaque repaint il me semble (je n'ai plus le programme où je l'avais utilisé car je suis au travail) mais sur les exemples de la javadoc ils font comme ça ^^

    bon courage !

    mavina
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  7. #7
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Herm, le MediaTracker ne *sert à rien* avec ImageIO. ImageIO garantit que l'image est prête à être utilisée après appel. MediaTracke est utile uniquement avec Toolkit.getImage(). De plus le waitForId() n'a pas à être réalisé dans paint().

    Pour mettre l'image en arrière-plan, il faut faire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void paint(Graphics g) {
      // ... ton code
      super.paint(g);
    }
    Mais tu vas avoir des problèmes. À la place, surcharge paintComponent() et non paint().
    Romain Guy
    Android - Mon livre - Mon blog

  8. #8
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Mais la solution du MediaTracker est elle bonne dans le principe ou vaut mieux utiliser la votre ?
    Je dis ca car en DUT on avait utilisé ça :o
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  9. #9
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Elle n'a absolument aucun intérêt puisqu'il ne va absolument rien se passer. Il faut utiliser soit Toolkit/MediaTracker, soit ImageIO. Pas les deux.
    Romain Guy
    Android - Mon livre - Mon blog

  10. #10
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    oui non maintenant je sais qu'il faut utiliser le toolkit, je veux dire, est-ce mieux un mediatracker ou redefinir paintcomponent ?

    merci

    mavina
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  11. #11
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Ça n'a rien à voir. Le MediaTracker permet d'attendre que l'image est chargée et paintComponent() permet de la dessiner. En outre, tu devrais plutôt utiliser ImageIO que Toolkit/MediaTracker car tu n'as justement rien à faire pour attendre la fin du chargement. Tu reçois en outre une BufferedImage, qui sont plus pratique que les ToolkitImages renvoyées par le Toolkit.
    Romain Guy
    Android - Mon livre - Mon blog

  12. #12
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Ok, merci pour ces précisions !

    mavina
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre une image en arriere plan dans un dossier
    Par vg-matrix dans le forum Windows XP
    Réponses: 3
    Dernier message: 01/09/2008, 23h06
  2. comment mettre une image en arriere-plan en JFrame ou JPanel
    Par fateh_mansori dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 27/05/2007, 21h42
  3. Réponses: 10
    Dernier message: 07/06/2006, 11h12
  4. Comment mettre une image en arriere plan
    Par huon dans le forum Access
    Réponses: 1
    Dernier message: 13/09/2005, 16h16
  5. Centrage de texte avec une image en arriere plan
    Par MasterOfChakhaL dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 26/08/2005, 18h31

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