Probleme Graphics

Probleme Graphics - Java - Programmation

Marsh Posté le 12-03-2004 à 17:23:41    

j'ai un probleme :
 
Graphics g;
g.create(....);
g.drawline(....);
 
mon probleme c'est que le compilateur signal que g n'est pas
initialiser, mais je comprend pas pourkoi ???

Reply

Marsh Posté le 12-03-2004 à 17:23:41   

Reply

Marsh Posté le 12-03-2004 à 17:59:37    

Grahics g --> c'est une déclaration, et non pas une initialisation (g n'est meme pas instanciée à ce moment là).
 
Si tu veux dessiner, essaies plutot :
paintComponent (Graphics g)
{
  super.paintComponent(g);
  g.create(...);
  g.drawLine(...);
}
 
Edit : le mieux serait meme de créer une autre méthode qui fasse le dessin et tu fais appel à cette méthode dans paintComponent.


Message édité par kotw le 12-03-2004 à 18:01:26
Reply

Marsh Posté le 12-03-2004 à 18:01:32    

zoheir13k a écrit :

j'ai un probleme :
 
Graphics g;
g.create(....);
g.drawline(....);
 
mon probleme c'est que le compilateur signal que g n'est pas
initialiser, mais je comprend pas pourkoi ???

Graphics g; déclare une variable de type Graphics qui s'appelle g. Il faut lui donner une valeur, ex :  

Code :
  1. Graphics g = this.getGraphics();


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 13-03-2004 à 11:54:34    

oui sayé ça marche ,mais avec Drawimage() elle marche pas
voici le code :  
 
Graphics g=this.getGraphics();
g.create();
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);
      g.drawImage(img,100,100,300,300,this);
 
         }  
 
l'image elle s'affiche pas ??,je sais pas ou es le brobleme  

Reply

Marsh Posté le 13-03-2004 à 12:45:35    

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 :
  1. public void paint(Graphics g) {
  2.     super.paint(g);
  3.     g.drawImage(img, 100, 100, 300, 300, this);
  4. }


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 :
  1. JFileChooser chooser = new JFileChooser();//création dun nouveau filechosser
  2. chooser.setApproveButtonText("Choix du fichier..." );
  3. chooser.showOpenDialog(null); //affiche la boite de dialogue
  4. if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
  5.     FileName=chooser.getSelectedFile().getAbsolutePath();
  6.     img=getToolkit().getImage(FileName);
  7.     this.repaint();
  8. }

 


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 13-03-2004 à 14:36:01    

Sayé ça marche , merci R3g

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed