afficher une image dans un JPanel imbriqué - Java - Programmation
MarshPosté le 09-02-2006 à 21:00:15
Bonjour,
J'ai un problème d'affichage d'image dans deux JPanel imbriqués. J'ai une class PanelAvecFond qui permet d'afficher une image dans le panel Cette classe marche très bien sauf quand elle est imbriquée dans un autre panel de type PaneAvecFond auquel cas le panel imbriqué ne s'affichera pas (idem si on rajoute un JLabel dans celui ci). Je pense que le problème doit venir d'un paint à refaire au moment ou j'inclue mon second panel mais je suis pas sur. Voilà le code de ma classe :
/** declaration of a JComponent which can display a background picture
* @see : JComponnent
* @author :
*/
publicclass PanelAvecFond extends JComponent {
///////////////////////
// Variable declaration
///////////////////////
private TexturePaint maTexture; // texture to display
private BufferedImage monBuffer; // Image Buffer
//////////////////////
// Methode declaration
//////////////////////
/** constructor of the JPanel with a background
* @param : file name of the background
* @return : void
*/
public PanelAvecFond(String monNomDeFichier){
this.monBuffer = this.toBufferedImage(Toolkit.getDefaultToolkit().getImage(monNomDeFichier)); // get image from a file and "stock" it to a buffer
this.maTexture = new TexturePaint(monBuffer,new Rectangle(0, 0, monBuffer.getWidth(), monBuffer.getHeight())); // create a texte from the image buffer created juste above
}
/** method to display the picture
* @param : component where we can draw
* @return : void
*/
publicvoid paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D)g; // create a 2D graphics
g2d.setPaint(maTexture); // applay texture to 2D graphics
g2d.fillRect(0, 0, getWidth(), getHeight() ); // draw a rectangle which contain the picture
}
/** method to buffer an image
* @param : picture to buffer
* @return : Buffered picture corresponding to picture
Marsh Posté le 09-02-2006 à 21:00:15
Bonjour,
J'ai un problème d'affichage d'image dans deux JPanel imbriqués.
J'ai une class PanelAvecFond qui permet d'afficher une image dans le panel
Cette classe marche très bien sauf quand elle est imbriquée dans un autre panel de type PaneAvecFond auquel cas le panel imbriqué ne s'affichera pas (idem si on rajoute un JLabel dans celui ci).
Je pense que le problème doit venir d'un paint à refaire au moment ou j'inclue mon second panel mais je suis pas sur.
Voilà le code de ma classe :