Bonjour,
La classe Fond de mon programme s'occupe (entre autres choses) d'afficher une image de fond dans un Jframe via la méthode paintComponent().
Pour afficher l'image de fond on utilise les lignes de code suivantes :
Une autre classe de mon programme s'occupe de modifier l'image FondModifiable.jpg. Cette classe fait bien son boulot puisque je vérifie bien (visuellement) que l'image FondModifiable.jpg est changée lorsqu'on appelle une méthode de cette classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public void paintComponent(Graphics g){ super.paintComponent(g); Graphics g2 = (Graphics2D)g; //Fond icoFond = new ImageIcon(getClass().getResource("img/FondModifiable.jpg")); this.fond = this.icoFond.getImage(); g2.drawImage(this.fond,0,0,null);
Le soucis c'est que la classe fond ne semble pas prendre en compte ce changement. Un exemple pour mieux comprendre :
Mettons que l'image de base soit bleue. Après modification elle devient rouge. Cependant le programme l'affiche tjrs bleue. Par contre si j'éteint le programme et que je le relance, cette fois l'image est bien rouge ...
J'ai fait quelques recherches concernant le refresh d'image Image. Il semble plus adapté d'utiliser les BufferedImage. Cependant si je rafraichit la source de cette bufferedImage dans la méthode PaintComponent(), j'ai une chute monstrueuse de FPS... Donc je ne sais que faire.
Merci d'avance pour vos réponses.
Partager