Details:rapide Repeindre Question (Canvas objet)
méthode Repaint de mon objet JPanel ne fonctionne pas lorsqu'il est appelé à l'intérieur de l'événement actionPerformed de ma classe principale. Cela fonctionne dans la méthode ImageViewer de la classe principale ImageViewer mais ne fonctionne pas à l'intérieur de la méthode actionPerformed de cette classe.
Ce sont les éléments essentiels de mon code qui ne fonctionnent pas correctement (partie repeindre):
Classe principale:
/**
* @(#)NeatImageViewer.java
*
* NeatImageViewer application
*
* @author
* @version 1.00 2010/11/1
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
public class NeatImageViewer extends JFrame implements ActionListener {
GraphicsPanel gp;
NeatImageViewer() {
//... window components ...
}
public static void main(String[] args) {
NeatImageViewer niv = new NeatImageViewer();
niv.setSize(500,500);
niv.setLocationRelativeTo(niv);
niv.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
//...
gp = new GraphicsPanel();
gp.img = img;
gp.repaint(); //<!--- Not Working!
this.add(gp);
//...
}
}
GraphicsPanel Classe:
/**
* @(#)GraphicsPanel.java
*
*
* @author
* @version 1.00 2010/11/1
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
public class GraphicsPanel extends JPanel {
BufferedImage img;
GraphicsPanel() {
super();
}
protected void paintComponent(Graphics g) {
//paint method isn't executed???
super.paintComponent(g);
System.out.println("Paint!");
}
}
"ne fonctionne pas à l'intérieur de la méthode actionPerformed de cette classe." ne veut rien dire pour nous. Publiez votre SSCCE (http://sscce.org) démontrant le problème. – camickr