Stockage de segment, puis récupération???

guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004 - 20 mai 2004 à 03:11
guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004 - 26 mai 2004 à 01:07
bonjour à tous,
voilà je galere actuellement sur un programme permettant de stocker dans une procedure un nombre de segments aleatoires que j'associe à un nom, que je puisse bien sur ensuite recuperer....
exemple: à la procedure A j'associe 3 segments
à la procedure B j'associe 2 segments
je veux pouvoir ensuite tracer A ou B....
j'ai l'impression d'y etre presque...mais bon je ne recupere pas les segments.......

import java.applet.*;
import java.lang.String;
import java.lang.*;
import java.awt.*;
import java.util.ArrayList.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;

public class essai2 extends java.applet.Applet implements ActionListener,ItemListener{
Button stocker_segment,tracer,cancel;
public java.util.ArrayList stockage = new java.util.ArrayList();
public java.util.ArrayList stockage_proc = new java.util.ArrayList();
Choice choix;
TextField xa,ya,za,xb,yb,zb,name;
String commande = "40";
String chgmt = "20";
procédure p;

//Initialisation****************************************************************
public void init() {
xa = new TextField("100",4);
ya = new TextField("200",4);
za = new TextField("900",4);
xb = new TextField("500",4);
yb = new TextField("700",4);
zb = new TextField("900",4);
name = new TextField("",8);

stocker_segment = new Button("segments!");
tracer = new Button("stocker");
cancel = new Button("cancel");
cancel.setBackground(Color.red);

Label l = new Label("Nom de la procédure");
l.setFont( new Font("Helvetica",Font.BOLD,20));
choix = new Choice();
add(xa); add(ya); add(xb); add(yb);
add(stocker_segment);add(tracer);add(cancel);
add(l);add(name);add(za);add(zb);add(choix);
stocker_segment.addActionListener(this);
tracer.addActionListener(this);
cancel.addActionListener(this);
choix.addItemListener(this);
}

public void actionPerformed(ActionEvent e) {
commande = e.getActionCommand();
if (commande.equals("stocker")){
choix.add(name.getText());
}
repaint();
}

public void itemStateChanged(ItemEvent e) {
repaint();
}

public void paint(Graphics g) {
double XA=Double.parseDouble(xa.getText());
double YA=Double.parseDouble(ya.getText());
double ZA=Double.parseDouble(zb.getText());
double XB=Double.parseDouble(xb.getText());
double YB=Double.parseDouble(yb.getText());
double ZB=Double.parseDouble(zb.getText());

point aa = new point(XA,YA);
point bb = new point(XB,YB);

if (commande.equals("segments!")){
stockage.add(new segment(aa,bb));
}

if (commande.equals("stocker")){
System.out.println("********");
p = new procédure(name.getText(),stockage);
stockage.clone();
stockage_proc.add(p);
}

if (commande.equals("cancel")){
g.setColor(Color.blue);
g.drawString("RENTRER LES DONNEES",50,200);
//stockage.clone();
stockage.clear();
}

for (int i=0; i<choix.getItemCount(); i++) {
if(choix.getSelectedIndex()==i && stockage_proc.get(i) instanceof procédure){
System.out.println(choix.getItem(i));
g.setColor(Color.red);
g.setFont( new Font("Helvetica",Font.BOLD,20));
g.drawString(choix.getItem(i), 100, 100);
procédure p = (procédure) stockage_proc.get(i);
p.draw(g);
System.out.println("nom_procedure:"+p.getNom()+" nombre de segment:" + p.getPath().size());
}
}
}

////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////

//Classe point******************************************************************
class point{
double x,y,z;
public point(double u,double v,double w){
this.x=u;this.y=v;this.z=w;
}
public point(double u,double v){
this.x=u;this.y=v;
}
public double getX(){return x;}
public double getY(){return y;}
public double getZ(){return z;}
}

//Classe segment****************************************************************
class segment{
point a;
point b;
public segment(point p1, point p2){
this.a=p1;this.b=p2;
}
}

//Classe procédure**************************************************************
class procédure{
String name_procédure;
java.util.ArrayList path = new java.util.ArrayList();
public procédure(String nom_procédure,java.util.ArrayList stockage_procédure){
this.name_procédure=nom_procédure;this.path=stockage_procédure;
}
public String getNom(){return name_procédure;}
public java.util.ArrayList getPath(){return path;}
public void draw(Graphics g){
for (int i=0; i<path.size(); i++) {
if (path.get(i) instanceof segment){
segment s = (segment) path.get(i);
g.setColor(Color.green);
g.drawLine((int) s.a.getX(),(int) s.a.getY(),(int) s.b.getX(),(int) s.b.getY());
System.out.println("////////////////////");
}
}
}
}
//******************************************************************************
}

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
25 mai 2004 à 17:59
stoque les segments de A dans un vecteur(pour pouvoir placer nSegment en dynamique) idem pour B
de la tu place les deux objet dans un vecteur AB et tu dessine AB
0
guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004
26 mai 2004 à 01:07
pour ce probleme la c regler
j'utiliser en fait fort mal les vector...
mais je trouve que c qd meme qquechose de tres difficile.....

en tout cas pour ce pb c ok.....

On ferme...
et merci ;)
0
Rejoignez-nous