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

 Java Discussion :

Image de fond JFrame


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 20
    Par défaut Image de fond JFrame
    Bonsoir,

    Je souhaite afficher une image de fond pour mon interface graphique. Je crée donc ma Frame principale (avec JFrame). Il me semble qu'il me faut ajouter un autre composant. J'ai crée un JLabel dans lequel je passe une image (setIcon) puis un JPanel dans le lequel je passe mon Label. J'ajoute ensuite mon Label à ma Frame mais mon image ne s'affiche pas. Pourriez-vous m'aider ? Voici mon code :
    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
    29
    30
    31
    32
    33
     
    import java.awt.Dimension;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
     
    public class Frame extends JFrame{
     
    	private JFrame frame;
    	private JPanel panel;
    	private JLabel label;
    	private String titre = "Tanks";
    	private ImageIcon bottom = new ImageIcon("tank.jpg");
     
     
    	public Frame(){
    		super();
     
    		frame = new JFrame();
    		panel = new JPanel();
    		label = new JLabel();
    		label.setIcon(bottom);
    		setTitle("Tanks");
    		setSize(new Dimension(800, 600));
    		panel.add(label);
    		frame.getContentPane().add(panel);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
     
    	}
    Et le main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    import javax.swing.JFrame;
     
    public class Game {
     
    	public static void main(String[] args) {
    		JFrame game = new Frame();
    		game.setVisible(true);
    	}
     
    }
    Où est mon erreur ??

    Merci =)

  2. #2
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    salut
    si ton dossier principale est SRC (comme sous eclipse)
    alors tu dois faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private ImageIcon bottom = new ImageIcon("src/tank.jpg");

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 20
    Par défaut
    J'ai bien mis mon image dans src puis fait:

    private ImageIcon bottom = new ImageIcon("src/tank.jpg");

    Mais toujours pas d"image en fond... =(

  4. #4
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    salut.
    tu dois enlever l'attribut private JFrame frame;

    aprés tu dois mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getContentPane().add(panel);
    et non pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    frame.getContentPane().add(panel);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Frame game = new Frame();
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JFrame game = new Frame();

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 20
    Par défaut
    Nickel, ca marche =) Merci beaucoup !! Peux-tu m'expliquer pourquoi maintenant ? Histoire que je comprenne ce que je fais et non pas que je recopie bêtement...

    Merci encore =)

    Bonne fête de pâques

  6. #6
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    quand tu as fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    frame.getContentPane().add(panel);
    tu as ajouté le panneau a une deuxième fenêtre frame et non pas a ta fenêtre courante .
    pour mieux comprendre la situation
    tu peux ajouter ces deux lignes a la fin de ton code (avant correction)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    frame.setSize(new Dimension(500, 600));
    		frame.setVisible(true);
    et tu va remarquer deux fenêtres , une qui contient l'image (correspond a l'objet frame ) et une autre gris qui correspond a l'instance de ta classe principale"public class Frame extends JFrame"

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 20
    Par défaut
    D'accord je comprends mieux mon erreur en effet... Merci beaucoup et bonne journée !

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

Discussions similaires

  1. Rafraichissement d'une image de fond JFrame
    Par bastien dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 30/04/2010, 20h41
  2. Image de fond Jframe
    Par toma03 dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 10/08/2009, 18h37
  3. image de fond dans une JFrame
    Par intik dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 22/11/2006, 19h52
  4. [Swing]Image en fond de JFrame+ objets par dessus
    Par matt92700 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 16/01/2006, 15h12
  5. Comment mettre une image en fond de JFrame
    Par marc26 dans le forum Débuter
    Réponses: 3
    Dernier message: 19/01/2004, 17h57

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