[JAVA] Affichage d'une image dans un Panel
Julie35
Messages postés
2
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
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:
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);
}}
A voir également:
- [JAVA] Affichage d'une image dans un Panel
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
1 réponse
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:
Je n'ai pas testé le code, mais ce doit être quelquechose d'approchant
;-)
HackTrack
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