graphics-procedure

graphics-procedure - Java - Programmation

Marsh Posté le 07-03-2005 à 08:46:56    

BONJOUR
Ayant toujours du mal a comprendre JAVA pourquoi peut on
definir rayon dans la procedur calcul() mais ne peut on pas
y glisser le g.drawLine? pourtant g. represente l'objet graphique..
 
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
 
public class Composant extends Applet implements ActionListener {
 
 String commande = "Normal";
 Button bn, bg, bi;
 Font fgras, fnormal, fitalic, fdef;
 int i,x,y;
 int rayon=200;
 
 public void init() {
 
  add(bn = new Button ("Normal" ));
  add(bg = new Button("Gras" ));
  add(bi = new Button("Italique" ));
     
  bn.addActionListener(this);
  bg.addActionListener(this);
  bi.addActionListener(this);  
   
  fgras   = new Font("Helvetica",Font.BOLD,40);
  fnormal = new Font("Helvetica",Font.PLAIN,40);
  fitalic = new Font("Helvetica",Font.ITALIC,40);
  fdef    = new Font("Helvetica",Font.PLAIN,12);
 }
 
 public void actionPerformed(ActionEvent e) {
   commande = e.getActionCommand();
   repaint();
 }
 
 
 
 public void paint(Graphics g) {
   
  if (commande.equals("Normal" )) g.setFont(fnormal);
  if (commande.equals("Gras" )) g.setFont(fgras);
  if (commande.equals("Italique" )) g.setFont(fitalic);
  g.drawString("Exemple", 20, 80);
  g.setFont(fdef);
        calcul();  
        for(i=0;i<100;i++)
        {
        x=400+(int)(Math.sin(3.14159/50*i)*rayon);
        y=300+(int)(Math.cos(3.14159/50*i)*rayon);    
        g.drawLine(400,300,x,y);
        }
       
    }  
       public void calcul()
     {
  rayon=200;  
        // on ne peut pas inserer le dessin du cercle ???  
        }
 }
MERCI D'AVANCE

Reply

Marsh Posté le 07-03-2005 à 08:46:56   

Reply

Marsh Posté le 07-03-2005 à 08:48:33    


 
C'est ça le problème. Je te conseille de te renseigner sur ce qu'est la programmation objet, parce que tu es resté coincé en procédural. Il y a une intro pas mal sur "comment ça marche".


---------------
Moi, j'aime pas les signatures - J'écoute actuellement :
Reply

Marsh Posté le 07-03-2005 à 13:41:43    

ok merci cela fait 2 ans que je commence le java

Reply

Marsh Posté le 07-03-2005 à 16:30:56    

Peut etre en rajoutant un paramètre à ta méthode calcul...


---------------
PataCara
Reply

Marsh Posté le 07-03-2005 à 23:10:48    

j'ai trouvé ,un peu mieux compris grace a un autre site:
http://www.self-access.com/java/jvBonjour.htm
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
 
public class Composant extends Applet implements ActionListener {
 
 String commande = "cercle1";
 Button bn, bg ;
 Font fgras, fnormal, fitalic, fdef;
 int i,x,y;
 int rayon=200;
 
 
       
 public void init() {
 
  add(bn = new Button ("cercle n1" ));
  add(bg = new Button("cercle n2" ));
   
  bn.addActionListener(this);
  bg.addActionListener(this);
   
   
  fgras   = new Font("Helvetica",Font.BOLD,40);
  fnormal = new Font("Helvetica",Font.PLAIN,40);
  fitalic = new Font("Helvetica",Font.ITALIC,40);
  fdef    = new Font("Helvetica",Font.PLAIN,12);
 }
 
 public void actionPerformed(ActionEvent e) {
   commande = e.getActionCommand();
   repaint();
 }
 
 
 public void paint(Graphics g) {
     
  g.drawString("Exemple", 20, 180);
  if (commande.equals("cercle n1" )) cercle1(g,0);
     if (commande.equals("cercle n2" )) cercle1(g,10);
         
   }
   void cercle1(Graphics gege,int delta)
     {
      rayon=200;
      for(i=0;i<100;i++)
          {
          x=400+delta+(int)(Math.sin(3.14159/50*i)*rayon);
          y=300+(int)(Math.cos(3.14159/50*i)*rayon);    
          gege.drawLine(400,300,x,y);  
          }
       
       
      }
}      
     

Reply

Sujets relatifs:

Leave a Replay

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