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

Interfaces Graphiques en Java Discussion :

utiliser une image comme fond d'une interface graphique


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 89
    Points : 40
    Points
    40
    Par défaut utiliser une image comme fond d'une interface graphique
    bonsoir!
    je suis débutante en java et je voudrais réaliser (comme première étape) une interface graphique avec un fond personnalisé (image stockée sur mon disque) mais le problème c'est que lorsque j'éxécute mon code, mon interface s'affiche sans problème sauf que l'image n'apparaît pas!
    veuillez m'aider svp, ça fait une bonne période que j'essaye de corriger mais j'arrive pas à le faire
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    package guide_touristique;
    import java.*;
    import java.awt.Image;
    import java.awt.MediaTracker;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JLabel;
     
    public class guide_touristique extends JFrame
    {
     
     
      public guide_touristique()
      {
        super();
        build(); //On initialise notre fenêtre
      }
     
      private void build()
      {
        setTitle("Votre guide touristique"); //On donne un titre à l'application
        setSize(600, 600); //On donne une taille à notre fenêtre
        setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
        setResizable(false); //On interdit la redimensionnement de la fenêtre
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
      }
     
      public class TestJFrame extends JFrame
      {
        private Image fond;
        public TestJFrame()
        {super();
          fond = java.awt.Toolkit.getDefaultToolkit().getImage("./tourisme-tunisie.jpg");
          try {
            MediaTracker mt = new MediaTracker(this);
            mt.addImage(fond, 0);
            mt.waitForAll();
          }
          catch (Exception e)
          {e.printStackTrace();}
     
         /*etContentPane(new ContentPane(fond));*/
          getContentPane().add(new JLabel("Bonjour"));
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          setSize(400, 400);
          setLocationRelativeTo(null);
          setVisible(true);
        }
      }
    }
    NB : mon image est placée dans le dossier du projet dans lequel je travaille
    merci d'avance

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Le problem est dans le chemin de l'image.
    vous devez tout d'abord enregistrer l'image sous le package de travail
    pour vous c'est guide_touristique en fesant simplement glisser l'image sous ton package ensuite mettre ce chemin "/guide_touristique/le non de ton image"

  3. #3
    Membre averti
    Avatar de Chatanga
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 211
    Points : 346
    Points
    346
    Par défaut
    1) Indente ton code.

    2) Utilise la bien nommée balise code.

    Code Java : 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    package org.hihan.mythos;
     
    import java.*;
    import java.awt.Image;
    import java.awt.MediaTracker;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
     
    public class guide_touristique extends JFrame {
     
        public guide_touristique() {
            super();
            build(); //On initialise notre fenêtre
        }
     
        private void build() {
            setTitle("Votre guide touristique"); //On donne un titre à l'application
            setSize(600, 600); //On donne une taille à notre fenêtre
            setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
            setResizable(false); //On interdit la redimensionnement de la fenêtre
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
        }
     
        public class TestJFrame extends JFrame {
     
            private Image fond;
     
            public TestJFrame() {
                super();
                fond = java.awt.Toolkit.getDefaultToolkit().getImage("./tourisme-tunisie.jpg");
                try {
                    MediaTracker mt = new MediaTracker(this);
                    mt.addImage(fond, 0);
                    mt.waitForAll();
                } catch (Exception e) {
                    e.printStackTrace();
                }
     
                /*etContentPane(new ContentPane(fond));*/
                getContentPane().add(new JLabel("Bonjour"));
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                setSize(400, 400);
                setLocationRelativeTo(null);
                setVisible(true);
            }
        }
    }

    3) Ouvre les yeux. Honnêtement, tu ne vois pas pourquoi ton image ne s'affiche pas ?

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /*etContentPane(new ContentPane(fond));*/
    getContentPane().add(new JLabel("Bonjour"));
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(400, 400);
    setLocationRelativeTo(null);
    setVisible(true);

  4. #4
    Membre averti
    Avatar de Chatanga
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 211
    Points : 346
    Points
    346
    Par défaut
    4) Une solution très rudimentaire.

    4.a) Une nouvelle classe :

    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
     
    public class BackgroundPanel extends JPanel {
     
        private BufferedImage image;
     
        public BackgroundPanel(URL imageUrl) {
            if (imageUrl == null) {
                throw new NullPointerException();
            }
            try {
                image = ImageIO.read(imageUrl);
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
     
        @Override
        public void paintComponent(Graphics g) {
            g.drawImage(image, 0, 0, this);
        }
    }
    4.b ) Et ton code à modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /*etContentPane(new ContentPane(fond));*/
    //getContentPane().add(new JLabel("Bonjour"));
     
    JPanel panel = new BackgroundPanel(getClass().getResource("/tourisme-tunisie.jpg"));
    panel.add(new JLabel("Bonjour"));
    add(panel);

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/04/2015, 08h15
  2. Utiliser une image de fond dans une application
    Par Haiden dans le forum Débuter
    Réponses: 7
    Dernier message: 14/04/2011, 16h29
  3. utiliser une image de fond pour une application
    Par AM1NE dans le forum Débuter
    Réponses: 4
    Dernier message: 03/07/2009, 12h18
  4. Réponses: 6
    Dernier message: 21/09/2006, 17h33
  5. Réponses: 4
    Dernier message: 03/05/2005, 09h03

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