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 :

Problème d'affichage de fond


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 46
    Par défaut Problème d'affichage de fond
    j'ai setVisible(true);

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Et en quel honneur ta Frame devrait-elle afficher l'image?

    Dans ton code, tu déclare une variable de type ImageIcon que tu initialises... fort bien, mais à aucun moment je ne vois de ligne de code demandant d'afficher cette dernière en fond de ton JPanel... (à moins que j'aie raté quelque chose)
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre expérimenté Avatar de erictoguem
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 150
    Par défaut surcharge la méthode paint
    Pour résoudre ton problème, il te suffit de surcharger la méthode paint() de ton JPanel,
    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void paint(Graphics g){
      super(g);
      tapiscarte = new ImageIcon("C:\\image\\Tapis.gif");
      g.drawImage(tapiscarte, 0, 0, null);
    }

  4. #4
    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
    Citation Envoyé par erictoguem
    Pour résoudre ton problème, il te suffit de surcharger la méthode paint() de ton JPanel,
    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void paint(Graphics g){
      super(g);
      tapiscarte = new ImageIcon("C:\\image\\Tapis.gif");
      g.drawImage(tapiscarte, 0, 0, null);
    }
    1. Il vaut mieux surcharger paintComponent que paint, car paint réalise d'autre opérations que le dessin du composant lui même comme le dessin des bordures, des componants contenus & ainsi de suite...
    2. un drawImage avec un ImageIcon ne marchera pas, il faut faire une drawImage sur le résultat de la méthode getImage de l'ImageIcon
    3. au sper() appelle nle constructeur de ta classe, j'aurais plutôt tendance à utiliser super.paintComponent(g), sinon vois le dawa...
    4. Charger une Image à chaque paintComponent, c'est basiquement une horreur niveau perfs
    Version correcte

    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
     
     
    public class ImageComponent extends JComponent {
       private Image image;
       public ImageComponent(Image image) {
          this.image = image;
          if(image != null) {
             this.setPreferredSize(new Dimension(image.getWidth(), image.getHeight());
          }
       }
       protected void paintComponent(Graphics g) {
          super.paintComponent(g);
          if(isShowing() && image != null {
             g.drawImage(image,0,0,null);
          }
       }
    }
    ++

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 46
    Par défaut
    merci pour l'info je vais essayé dardar

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 46
    Par défaut
    au faite dans ma class Tapis j'avais surchargé :


    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
     
     
    public class Tapis extends JPanel {
     
     
      private static ImageIcon[] dominoJouee= new ImageIcon[4];;
     
      private static ImageIcon[] dominoSud = new ImageIcon[8];
     
        private ImageIcon dominoV,tapisdomino;
     
      ...
      ...
     
      Tapis(Joueur[] joueurs) {
     
        lesjoueurs = joueurs;
        dominoV = new ImageIcon("C:\\images\\00.jpg");
        tapisdomino = new ImageIcon("C:\\images\\tapis.jpg");
        essai=new JLabel(dominoV);
        setLayout(null);
     
      }
     
     
     
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        // jeux joueur sud
        int nb = 0;
        int posx = 125;
        int posy = 475;
        g.drawImage(tapisdomino.getImage(), 0, 0, null);
       nb = lesjoueurs[0].main.size();
        for (int v = 0; v < nb; v++) { 
    	    Domino ledomino =(Domino)lesjoueurs[0].main.get(v); 
    	    if (ledomino!=null){
    	    	g.drawImage(ledomino.getImage(), posx,posy, null); posx = posx + 40; 
    	    }
        }
    ....
    mais ça n'affichait rien. Parcontre je vais essayé avec la méthode de SINOK

Discussions similaires

  1. Problème d'affichage du fond de page
    Par rberniga dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 02/09/2009, 12h03
  2. Problème d'affichage des bouton et image de fond
    Par kartouch dans le forum Applets
    Réponses: 2
    Dernier message: 16/12/2008, 14h23
  3. Réponses: 4
    Dernier message: 21/01/2008, 16h36
  4. Problème d'affichage d'image de fond
    Par Print' dans le forum Delphi
    Réponses: 14
    Dernier message: 01/04/2007, 16h40
  5. problème d'affichage d'un menu sur une image de fond
    Par Nata31 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/06/2006, 07h53

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