le g.create(), c'est pas utile. getGraphics renvoie un Graphics pret à l'emploi.
Si ce que tu veux faire est afficher une image dans ton composant, il vaut mieux stocker une référence sur l'image quelque part : à chaque fois que ton composant devra être redessiné, il faudra que tu redessine l'image. Donc ce qu'il est préférable de faire, c'est de mettre img comme une propriété de ton objet ( si ce n'est deja fait).
Ensuite tu surcharges la méthode paint de ton composant :
Code :
- public void paint(Graphics g) {
- super.paint(g);
- g.drawImage(img, 100, 100, 300, 300, this);
- }
|
ensuite pour rendre le changement d'image effectif il n'y a plus qu'à appeler repaint() sur ton objet (on appelle jamais paint directement) :
Code :
- JFileChooser chooser = new JFileChooser();//création dun nouveau filechosser
- chooser.setApproveButtonText("Choix du fichier..." );
- chooser.showOpenDialog(null); //affiche la boite de dialogue
- if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
- FileName=chooser.getSelectedFile().getAbsolutePath();
- img=getToolkit().getImage(FileName);
- this.repaint();
- }
|
---------------
Au royaume des sourds, les borgnes sont sourds.