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 :

[débutant] image de background pour un JPanel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 8
    Par défaut [débutant] image de background pour un JPanel
    Bonsoir à tous!

    Afin de tester la mise en place d'une image de fond dans un JPanel, j'ai réalisé vite fait ce code; il est fort simple.
    2 classes: Une pour creer une fenetre basique de type JFrame, et une autre pour creer un JPanel; une fenêtre comprenant un panel.

    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
    21
    package test;
     
    import javax.swing.JFrame;
     
    public class TestFrame extends JFrame {
     
    	private TestPanel tp_;
     
    	public TestFrame(){
    		tp_ = new TestPanel(this);
    		getContentPane().add(tp_);
    		pack();
    	}
     
     
    	public static void main(String args[]){
    		TestFrame tf = new TestFrame();
    		tf.setVisible(true);
    	}
     
    }
    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
    21
    22
    23
    24
    25
    26
    27
    28
    package test;
     
    import javax.swing.JPanel;
    import java.awt.Image;
    import java.awt.Toolkit;
    import java.awt.Graphics;
    import java.awt.Dimension;
    import java.awt.MediaTracker;
     
    public class TestPanel extends JPanel {
     
    	Image background_;
    	TestFrame container_;
    	MediaTracker mTrack_;
     
    	public TestPanel(TestFrame tf){
    		container_ = tf;
    		background_ = Toolkit.getDefaultToolkit().getImage("back2.jpg");
    		setOpaque(false);
                    setPreferredSize(new Dimension(500,500));
    	}
     
    	public void paint(Graphics g){
    		 g.drawImage(background_,10,10,this);	// Ne s'affiche pas
    		 g.drawOval(10, 10, 10, 10); // S'affiche ...
    	}
     
    }
    Le problème est le suivant: l'image background_ ne s'affiche pas ....
    alors que le dessin d'un oval, lui, si ...

    Après avoir regardé plusieurs exemples sur le oueb, il me semble que c'est pourtant comme cela qu'il faut procéder ...

    Quelqu'un aurait-il une idée ... Je débute carement dans le domaine des interfaces graphiques en java.

    Merci !

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Ne charge pas ton image avec Toolkit, utilise plutot une ImageIcon ou ImageIO.

    Le chargement avec Toolkit est asynchrone (la methode retourne immediatement et l'image peut ne pas etre chargee) et necessite donc l'utilisation d'un ImageObserver pour savoir quand l'image a ete chargee entierrement histoire de rafraichir l'affichage.

    Les deux autres methodes sont synchrones et bloquent tant que l'image n'est pas entierement chargee.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 8
    Par défaut
    Nickel !!! ça fonctionne !
    Merci à toi

    Mais en fait j'avais un problème qui était autre (j'ai honte ... ):

    L'adresse de l'image que j'avais mise était relative, et je pensais que ça fonctionnerait. Hô erreur ! Alors j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            URL backgroundURL = this.getClass().getResource("background.jpg");
            background_ = new ImageIcon(backgroundURL).getImage();
    L'image étant dans le répertoire du package de ma classe. Et ça fonctionne !

    Merci @ +

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

Discussions similaires

  1. Changer image de background pour toutes les activités
    Par bradades dans le forum Android
    Réponses: 4
    Dernier message: 01/05/2014, 23h45
  2. Mettre une image en Background d'un JPanel et d'une JList
    Par diabli73 dans le forum Composants
    Réponses: 8
    Dernier message: 29/01/2010, 15h35
  3. [Débutant] image en background d'une Applet AWT
    Par xtofer dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 18/07/2006, 13h15
  4. [FTP] Code pour mettre une image en background
    Par Link14 dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2006, 21h10
  5. code HTML pour mettre une image en background dans un menu
    Par Link14 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/10/2005, 12h11

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