Rechercher : dans
Par :

[JAVA] Affichage d'une image dans un Panel

Dernière réponse le 7 avr 2007 à 07:26:43 Julie35, le 21 mar 2007 à 18:18:22 
 Signaler ce message aux modérateurs

Bonjour,
J'ai une Fenetre qui contient 4 Panel, dans un de ceux-ci je souhaite afficher une image grace à une classe Imag, mais l'image ne s'affiche pas, j'ai l'impression que la méthode paintComponent de la classe Imag n'est pas exécutée, pourtant je croyais que cette méthode était appelée automatiquement par Java.

mon code:


package javaapplication6;

import java.awt.Image;
import javax.swing.JPanel;


public class Fenetre extends javax.swing.JFrame {
    
    
    public Fenetre() {
        initComponents();
        Imag img=new Imag(this.pannelImage);
    }
    
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        pannelImage = new java.awt.Panel();
        panelTrajet = new java.awt.Panel();
        panelHistorique = new java.awt.Panel();
        panelGestion = new java.awt.Panel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        pannelImage.setBackground(new java.awt.Color(153, 153, 255));
        org.jdesktop.layout.GroupLayout pannelImageLayout = new org.jdesktop.layout.GroupLayout(pannelImage);
        pannelImage.setLayout(pannelImageLayout);
        pannelImageLayout.setHorizontalGroup(
            pannelImageLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 366, Short.MAX_VALUE)
        );
        pannelImageLayout.setVerticalGroup(
            pannelImageLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 262, Short.MAX_VALUE)
        );

        panelTrajet.setBackground(new java.awt.Color(255, 102, 102));
        org.jdesktop.layout.GroupLayout panelTrajetLayout = new org.jdesktop.layout.GroupLayout(panelTrajet);
        panelTrajet.setLayout(panelTrajetLayout);
        panelTrajetLayout.setHorizontalGroup(
            panelTrajetLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 416, Short.MAX_VALUE)
        );
        panelTrajetLayout.setVerticalGroup(
            panelTrajetLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 262, Short.MAX_VALUE)
        );

        panelHistorique.setBackground(new java.awt.Color(255, 255, 51));
        org.jdesktop.layout.GroupLayout panelHistoriqueLayout = new org.jdesktop.layout.GroupLayout(panelHistorique);
        panelHistorique.setLayout(panelHistoriqueLayout);
        panelHistoriqueLayout.setHorizontalGroup(
            panelHistoriqueLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 366, Short.MAX_VALUE)
        );
        panelHistoriqueLayout.setVerticalGroup(
            panelHistoriqueLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 296, Short.MAX_VALUE)
        );

        panelGestion.setBackground(new java.awt.Color(0, 255, 0));
        org.jdesktop.layout.GroupLayout panelGestionLayout = new org.jdesktop.layout.GroupLayout(panelGestion);
        panelGestion.setLayout(panelGestionLayout);
        panelGestionLayout.setHorizontalGroup(
            panelGestionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 416, Short.MAX_VALUE)
        );
        panelGestionLayout.setVerticalGroup(
            panelGestionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 296, Short.MAX_VALUE)
        );

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, panelHistorique, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, pannelImage, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(panelGestion, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(panelTrajet, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, panelTrajet, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(pannelImage, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(panelGestion, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(panelHistorique, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-800)/2, (screenSize.height-600)/2, 800, 600);
    }// </editor-fold>                        
    
    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Fenetre().setVisible(true);
                
            }
        });
    }
   
    // Variables declaration - do not modify                     
    private java.awt.Panel panelGestion;
    private java.awt.Panel panelHistorique;
    private java.awt.Panel panelTrajet;
    private java.awt.Panel pannelImage;
    // End of variables declaration                   
   
}








package javaapplication6;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Panel;
import java.awt.Toolkit;
import java.io.File;
import javax.swing.JPanel;


public class Imag {
    File img;
    private Panel parent;
    
    public Imag(Panel parent) {
        this.parent=parent;

    }
    
    public void paintComponent(Graphics g) {
        Image image;
        String nomImg;
        
        img=new File("Q:\\photos\\Canard1.jpg");
        String name=img.getName();
        
        image=Toolkit.getDefaultToolkit().getImage(name) ;
        g.drawImage(image, 10,10,50,50,parent);
        
        
    }}
Configuration: Windows XP
Firefox 2.0.0.2

Meilleures réponses pour « [JAVA] Affichage d'une image dans un Panel » dans :
Afficher les images et les animations Flash dans le navigateur VoirQuand vous allez sur un site internet, vous n'avez plus d'images affichées ; elles sont remplacées par un petit rectangle avec un carré rouge ou un triangle bleu (par exemple). 1 - Vérifier d'abord les paramètres de votre navigateur : Pour...
Les images ne s'affichent pas sur le site VoirDans une page web, les images sont spécifiées grâce à la balise IMG, avec la notation suivante : Les formats d'images supportés sur le web sont les formats GIF, JPG et PNG. Le format BMP n'est pas supporté par les...
Afficher le mode « diaporama » VoirPour afficher ses images dans le mode « diaporama » Pour afficher ses images dans le mode « diaporama », il faut d'abord que les tâches habituelles soient affichées dans les dossiers. Pour ce faire: 1- ouvrir n'importe quel dossier 2- choisir...
Java: les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...
PHP - Génération d'images VoirPrérequis PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut...

1

 HackTrack, le 7 avr 2007 à 07:26:43
  • +2

Salut!

Tu as bien défini une méthode paintComponent(), mais il faut que celle-ci soit définie dans une sous-classe de JComponent. Or, ta classe Imag n'est pas une sous-classe de JComponent.

Ce que tu devrais faire, c'est déplacer ta méthode paintComponent() dans le JPanel qui contient ton Imag ou alors faire comme ceci:

public class Imag {
    File img;
    private JPanel parent;
    
    public Imag(Panel parent) {
        this.parent=parent;

    }
    
    public void paintComponent(Graphics g) {
        Image image;
        String nomImg;
        
        img=new File("Q:\\photos\\Canard1.jpg");
        String name=img.getName();
        
        image=Toolkit.getDefaultToolkit().getImage(name) ;
parent.getGraphics().drawImage(image, 10,10,50,50,parent);
parent.repaint();
        
        
    }}



Je n'ai pas testé le code, mais ce doit être quelquechose d'approchant

;-)
HackTrack

Répondre à HackTrack