graphics-procedure - Java - Programmation
Marsh Posté le 07-03-2005 à 08:48:33
luuc a écrit : procedur |
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".
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);
}
}
}
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