Java : méthode painComponent jamais appelée
velociraptor
-
velociraptor -
velociraptor -
Bonjour,
Je sollicite votre aide car je suis légèrement bloqué sur un bout de code java
Voilà, j'ai un JPanel tout ce qu'il y a de plus normal, j'y ajoute des données dans un gridLayout et j'y met une image de fond. Le problème est au niveau de l'image de fond : la méthode paintComponent qui est sensée me l'ajouter n'est jamais exécuté. J'ai beau essayé de rajouter des repaint(), des update(), updateUI() etc etc, rien n'y fait ! Et j'aimerais assez comprendre pourquoi car j'utilise ça dans une dizaine d'autres programmes et ça marche !
J'ai aussi cherché à utiliser une méthode paint() à la place, même résultat...
Voilà mon bout de code :
Un grand merci d'avance à qui m'aidera à comprendre !
Bonne journée,
Alexandre
Je sollicite votre aide car je suis légèrement bloqué sur un bout de code java
Voilà, j'ai un JPanel tout ce qu'il y a de plus normal, j'y ajoute des données dans un gridLayout et j'y met une image de fond. Le problème est au niveau de l'image de fond : la méthode paintComponent qui est sensée me l'ajouter n'est jamais exécuté. J'ai beau essayé de rajouter des repaint(), des update(), updateUI() etc etc, rien n'y fait ! Et j'aimerais assez comprendre pourquoi car j'utilise ça dans une dizaine d'autres programmes et ça marche !
J'ai aussi cherché à utiliser une méthode paint() à la place, même résultat...
Voilà mon bout de code :
import javax.swing.*;
import java.awt.*;
public class AffichagePageCarnet extends JPanel {
private static final long serialVersionUID = 1L;
private JPanel pane;
public AffichagePageCarnet()
{
pane = new JPanel();
GridLayout layout = new GridLayout(2, 8);
pane.setLayout(layout);
// les 16 libellés se chargent bien...
for(int i = 0; i<16; i++)
{
pane.add(new JLabel("Test"));
}
}
// retourne le JPanel que je rajoute au programme global
// avec un simple add("Center", pageCree)
public JPanel creerPageIndividuelle()
{
pane.repaint();
return this.pane;
}
// voilà la madame qui veut pas être exécutée
// bon moi aussi j'aimerais pas, mais c'est pas une raison !
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
// ligne qui me fait dire qu'il n'y a pas d'exécution
// car elle ne s'est jamais affichée dans ma console...
System.out.println(getClass().getResource("/images/parchemin.png"));
ImageIcon ic = new ImageIcon(getClass().getResource("/images/parchemin.png"));
Image fond = ic.getImage();
g2.drawImage(fond,0,0,1024,680,this);
}
}
Un grand merci d'avance à qui m'aidera à comprendre !
Bonne journée,
Alexandre
A voir également:
- Java : méthode painComponent jamais appelée
- 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
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
2 réponses
Salut!
Essaye ceci:
;-)
HackTrack
Essaye ceci:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class AffichagePageCarnet extends JPanel {
private static final long serialVersionUID = 1L;
public AffichagePageCarnet() {
setLayout(new GridLayout(2, 8));
setPreferredSize(new Dimension(1024, 768));
for (int i = 0; i < 16; i++) {
JLabel label = new JLabel("Test");
add(label);
}
}
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
System.out.println(getClass().getResource("/images/parchemin.png"));
ImageIcon ic = new ImageIcon(getClass().getResource(
"/images/parchemin.png"));
Image fond = ic.getImage();
g2.drawImage(fond, 0, 0, 1024, 680, this);
}
}
;-)
HackTrack