[[Java]] -- Un gros probleme entre méthodes.

-- Un gros probleme entre méthodes. [[Java]] - Java - Programmation

Marsh Posté le 29-01-2003 à 00:41:07    

salut,
 
je localise le probleme :
 
 

  • une classe planete qui contient ques des attributs :


public class Planete {
 
 //Attributs
 String _nom;
 double _masse;
 Point2D.Double _position;
 Point2D.Double _vitesse;
 Vector _trajectoire;
 
........./.........


 

  • une classe saisie qui a pour but de mettre des élements de type planete dans un vecteur de planete. Elle appelle la classe ajout_planete par le code suivant :


if (src==_bajoutpla) // LANCE LA FENETRE D AJOUT DE PLANETE...
   {
     WindowListener l = new WindowAdapter()
     { public void windowclosing() { System.exit(0);} };
 
     //incrémente le compteur de planete entrée.
     Nb_planete++;
 
     //Ouvre la fenetre ajout_planete
     ajout_planete ajout = new ajout_planete(Nb_planete);


 
 

  • Le probleme c'est la classe ajout_planete c'est une interface graphique, et dans une des branches conditionnelles, elle doit renvoyer à la classe saisie un élément de type planete...


Le hic c'est que je vois pas du tout comment faire ça... c'est à dire que la méthodes actionPerformed de la classe ajout_planete ne me permet pas de renvoyer autre chose que void !!!!
 
 
 
Comment est ce que je pourrais faire pour que ma classe ajout_planete renvoie un élément de type planete à saisie ???


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 00:41:07   

Reply

Marsh Posté le 29-01-2003 à 00:57:10    

En gros j'ai des variables dans une classe et je veux y acceder dans une autre classe...
 
 
quel est le plus simple à faire ?
 
s'il vous plait un coup de main :sweat:


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 01:21:35    

ne me laisser pas dans la merde  :cry:


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 01:32:35    

zytrahus5 a écrit :

En gros j'ai des variables dans une classe et je veux y acceder dans une autre classe...
 
 
quel est le plus simple à faire ?
 
s'il vous plait un coup de main :sweat:  

:heink:  
 

public Planete getLaFoutuePlanete() {
  return machinPlanete;
}


....


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 29-01-2003 à 07:07:49    

zytrahus5 a écrit :

salut,
 

if (src==_bajoutpla) // LANCE LA FENETRE D AJOUT DE PLANETE...
   {
     WindowListener l = new WindowAdapter()
     { public void windowclosing() { System.exit(0);} };
 
     //incrémente le compteur de planete entrée.
     Nb_planete++;
 
     //Ouvre la fenetre ajout_planete
     ajout_planete ajout = new ajout_planete(Nb_planete);


 


 
 [:zebra33] Je ne suis pas convaincu que le System.exit(0) soit une bonne idée. Enfin, tout dépend de ce que tu veux dire, mais là, comme ça, ça fait bizarre.


---------------
Le site de ma maman
Reply

Marsh Posté le 29-01-2003 à 08:21:38    

Cherrytree a écrit :


 
 [:zebra33] Je ne suis pas convaincu que le System.exit(0) soit une bonne idée. Enfin, tout dépend de ce que tu veux dire, mais là, comme ça, ça fait bizarre.


 
il me semble que c'est bon. En fait qd t'as l'evenement de fermeture de fenetre, le prgm ne finit pas. c juste la fenetre qui se ferme. si tu veux quitter qd la fenetre est fermée, fo ajouter ca.

Reply

Marsh Posté le 29-01-2003 à 08:22:41    

gloop a écrit :


 
il me semble que c'est bon. En fait qd t'as l'evenement de fermeture de fenetre, le prgm ne finit pas. c juste la fenetre qui se ferme. si tu veux quitter qd la fenetre est fermée, fo ajouter ca.


Ben justement, j'étais pas sûr que ce qu'il voulait c'était quitter.


---------------
Le site de ma maman
Reply

Marsh Posté le 29-01-2003 à 08:23:35    

zytrahus5 a écrit :

salut,
 
 

if (src==_bajoutpla) // LANCE LA FENETRE D AJOUT DE PLANETE...
   {
     WindowListener l = new WindowAdapter()
     { public void windowclosing() { System.exit(0);} };
 
     //incrémente le compteur de planete entrée.
     Nb_planete++;
 
     //Ouvre la fenetre ajout_planete
     ajout_planete ajout = new ajout_planete(Nb_planete);




 
il me semble que la méthode windowclosing n'est pas la bonne.
C'est  

Code :
  1. void windowClosing(WindowEvent e)

Reply

Marsh Posté le 29-01-2003 à 08:23:58    

Cherrytree a écrit :


Ben justement, j'étais pas sûr que ce qu'il voulait c'était quitter.


ok désolé

Reply

Marsh Posté le 29-01-2003 à 08:24:34    

gloop a écrit :


 
il me semble que la méthode windowclosing n'est pas la bonne.
C'est  

Code :
  1. void windowClosing(WindowEvent e)

 


très juste. :jap:


---------------
Le site de ma maman
Reply

Marsh Posté le 29-01-2003 à 08:24:34   

Reply

Marsh Posté le 29-01-2003 à 08:26:14    

gloop a écrit :


ok désolé


En fait je vois pas pourquoi son Adapter d'ajout de Planète aurait à définir une méthode windowClosing. ça fait un bout que j'ai pas écrit du Swing, mais quelque part ça me choque.


---------------
Le site de ma maman
Reply

Marsh Posté le 29-01-2003 à 08:27:46    

Cherrytree a écrit :


En fait je vois pas pourquoi son Adapter d'ajout de Planète aurait à définir une méthode windowClosing. ça fait un bout que j'ai pas écrit du Swing, mais quelque part ça me choque.


exact, normalement on fout ca pour la fenetre principale. enfin il me semble, ca fait un bout de temps que j'ai pas codé ce genre de truc  :)

Reply

Marsh Posté le 29-01-2003 à 08:44:21    

merci pour le coup de main :)
 
comme j'avais pleins de problemes, avec toutes les fenetres, j'ai décidé de tout centraliser dans la principale...
 
 
et à mon grand desespoir, je me suis rendu compte qu'il y avait un probleme au lancement de la classe calcul :/
 
 
j'ai exactement la page d'erreur qui apparait, comme hier quand les champs étaient mal initialisés :cry:
 
pourtant cette fois ils sont bien initialisés :/
 
dans cette fenetre il y a tous les boutons, le probleme apparait quand je clique sur le bouton calcul....
 
 

package mvt_planete;
 
import java.awt.geom.Point2D;
import java.util.*;
import javax.swing.*;
import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.*;
import java.lang.String;
 
/**
 * Titre :
 * Description :
 * Copyright :    Copyright (c) 2002
 * Société :
 * @author
 * @version 1.0
 */
 
public class Principale extends JFrame implements ActionListener
// Héritage de JFrame et implémentation des écouteurs d'évènements
{
Planete new_planete;
Vector tab_planetes;
Calcul result;
 
  JButton ajout,calcul,simu;
  JLabel titre_nom;
  JTextField champ_nom;
  JLabel titre_masse;
  JTextField champ_masse;
  JLabel titre_posx;
  JTextField champ_posx;
  JLabel titre_posy;
  JTextField champ_posy;
  JLabel titre_vitx;
  JTextField champ_vitx;
  JLabel titre_vity;
  JTextField champ_vity;
 
int n;
 
public Principale()
 { super("Mouvement de Planete" );
      n=1;
 
      tab_planetes = new Vector();
 
      new_planete = new Planete();
 
 
    //Création de la fenetre
      JPanel pane = new JPanel();
 
      //définition des différents champs et étiquettes utilisés
      titre_nom = new JLabel("Nom" );
      champ_nom = new JTextField("Planete_"+n,10);
      champ_nom.setEditable(true);
      titre_masse = new JLabel("Masse" );
      champ_masse = new JTextField(10);
      champ_masse.setEditable(true);
      titre_posx = new JLabel("Position X" );
      champ_posx = new JTextField(10);
      champ_posx.setEditable(true);
      titre_posy = new JLabel("Position Y" );
      champ_posy = new JTextField(10);
      champ_posy.setEditable(true);
      titre_vitx = new JLabel("Vitesse X" );
      champ_vitx = new JTextField(10);
      champ_vitx.setEditable(true);
      titre_vity = new JLabel("Vitesse Y" );
      champ_vity = new JTextField(10);
      champ_vity.setEditable(true);
 
      ajout = new JButton("Valider" );
      ajout.addActionListener (this);
 
      calcul = new JButton("Calcul" );
      calcul.addActionListener (this);
 
      simu = new JButton("Simuler" );
      simu.addActionListener (this);
 
      pane.add("",titre_nom);
      pane.add("",champ_nom);
      pane.add("",titre_masse);
      pane.add("",champ_masse);
      pane.add("",titre_posx);
      pane.add("",champ_posx);
      pane.add("",titre_posy);
      pane.add("",champ_posy);
      pane.add("",titre_vitx);
      pane.add("",champ_vitx);
      pane.add("",titre_vity);
      pane.add("",champ_vity);
 
      pane.add("",ajout);
      pane.add("",calcul);
      pane.add("",simu);
      this.setContentPane(pane);
 
 }
 
public static void main (String [] args)
 {
   JFrame frame = new Principale();
 
   // Affichage propre de frame
   frame.resize(185,300);
   Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
   Dimension frameSize = frame.getSize();
   if (frameSize.height > screenSize.height) frameSize.height = screenSize.height;
   if (frameSize.width > screenSize.width) frameSize.width = screenSize.width;
   frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
   frame.setVisible(true);
 }
 
 // Sortie automatique en fermant la fenêtre (X)
 protected void processWindowEvent(WindowEvent e)
 { super.processWindowEvent(e);
   if (e.getID() == WindowEvent.WINDOW_CLOSING) {System.exit(0);}
 }
 
 // Gestion des réponses aux évènements
 public void actionPerformed (ActionEvent evt )
 { Object src=evt.getSource();
 
 n++;
 
   if (src==ajout)
   { setVisible(true); // fermeture de la fenêtre Principale
 
     WindowListener l = new WindowAdapter()
     { public void windowclosing() { System.exit(0);} };
 
     //remplir les variables par les champs
       new_planete._nom = champ_nom.getText();
       new_planete._masse = (new Double( champ_masse.getText() )).doubleValue();
       new_planete._position = new Point2D.Double( (new Double( champ_posx.getText() )).doubleValue() , (new Double( champ_posy.getText() )).doubleValue());
       new_planete._vitesse = new Point2D.Double( (new Double( champ_vitx.getText() )).doubleValue() , (new Double( champ_vity.getText() )).doubleValue());
 
       //Remplir le vecteur par les planetes
       tab_planetes.addElement(new_planete);
 
       champ_nom.setText("Planete_"+n);
       champ_masse.setText("" );
       champ_posx.setText("" );
       champ_posy.setText("" );
       champ_vitx.setText("" );
       champ_vity.setText("" );
     }
 
   if (src==calcul)
   {
   result = new Calcul(tab_planetes,10,n,1);
    // setVisible(true); // ouverture de la fenêtre Principale
   }
 
   if (src==simu)
   { //setVisible(true); // fermeture de la fenêtre Principale
 
 
     }
 }
}


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 08:48:41    

c quoi le msg d'erreur ?

Reply

Marsh Posté le 29-01-2003 à 08:49:29    

en regardant bien l'erreur n'est pas la meme :/
 
il y a ça au début du message qui est différent :
 

Exception occurred during event dispatching:
 
java.lang.ArrayIndexOutOfBoundsException: 2 >= 2
 
 at java.util.Vector.elementAt(Vector.java:417)
 
 at mvt_planete.Calcul.<init>(Calcul.java:53)
 
 at mvt_planete.Principale.actionPerformed(Principale.java:155)
 
 at javax.swing.AbstractButton.fireActionPe........./......


 
 
2 c'est ma valeur de mon int n, le probleme apparait a la ligne de lancement de la classe calcul...
 
est elle mal déclarée ?


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 08:51:36    

zytrahus5 a écrit :

en regardant bien l'erreur n'est pas la meme :/
 
il y a ça au début du message qui est différent :
 

Exception occurred during event dispatching:
 
java.lang.ArrayIndexOutOfBoundsException: 2 >= 2
 
 at java.util.Vector.elementAt(Vector.java:417)
 
 at mvt_planete.Calcul.<init>(Calcul.java:53)
 
 at mvt_planete.Principale.actionPerformed(Principale.java:155)
 
 at javax.swing.AbstractButton.fireActionPe........./......


 
 
2 c'est ma valeur de mon int n, le probleme apparait a la ligne de lancement de la classe calcul...
 
est elle mal déclarée ?


 
c pas ton btn calcul qui fait planté. C'est à l'intérieur du constructeur de la classe Calcul: dépassement d'indice à priori

Reply

Marsh Posté le 29-01-2003 à 08:53:01    

bah justement, ça me semblait correct :/ j'esperais au moins en avoir fait une de bonne :cry:
 
 

package mvt_planete;
 
import java.util.Vector;
import java.awt.event.*;
import java.awt.geom.Point2D;
import java.lang.*;
import java.lang.String;
import java.awt.*;
import javax.swing.*;
 
 
 
/*
*/
 
public class Calcul{
 //Attributs
 
Planete current_planete;
Planete other_planete;
Vector current_traj;
Vector all_traj;
 
 //Methodes
 // ->Constructeur
      public Calcul(Vector all_planetes, int iter, int Np, double Dt) {
 
      int i,j,t;
      double G,A,B,C;
      G = 6.67259E-11;
 
      current_planete = new Planete();
      other_planete = new Planete();
 
      all_traj = new Vector(Np);
      current_traj = new Vector();
 
 
      for (t=0;t<iter;t++)
                {
                for (j=0;j<Np;i++)
                      {
                      current_planete = (Planete) all_planetes.elementAt(j);
                      A = 0;
                      B = 0;
                      C = 0;
 
                      //Calcul des COEFFICIENTS A, B et C
                      for (i=0;i<Np;i++)
                            {
                            if (j!=i)
                                {
                                other_planete = (Planete) all_planetes.elementAt(i);
                                A = A + G*other_planete._masse / Math.pow(Math.sqrt( Math.pow((current_planete._position.x-other_planete._position.x),2) + Math.pow((current_planete._position.y-other_planete._position.y),2) ),3);
                                B = B + G*other_planete._masse*other_planete._vitesse.x / Math.pow(Math.sqrt( Math.pow((current_planete._position.x-other_planete._position.x),2) + Math.pow((current_planete._position.y-other_planete._position.y),2) ),3);
                                C = C + G*other_planete._masse*other_planete._vitesse.y / Math.pow(Math.sqrt( Math.pow((current_planete._position.x-other_planete._position.x),2) + Math.pow((current_planete._position.y-other_planete._position.y),2) ),3);
                                }
                            }
                      //Calcul de Xj(t + Dt)
                      current_planete._position.x = current_planete._position.x + Dt*(current_planete._vitesse.x);
 
                      //Calcul de Yj(t + Dt)
                      current_planete._position.y = current_planete._position.y + Dt*(current_planete._vitesse.y);
 
                      //Calcul de Vxj(t + Dt)
                      current_planete._vitesse.x = current_planete._vitesse.x - A*Dt*(current_planete._vitesse.x) + B;
 
                      //Calcul de Vyj(t + Dt)
                      current_planete._vitesse.y = current_planete._vitesse.y - A*Dt*(current_planete._vitesse.y) + C;
                      }
 
                current_traj = (Vector) all_traj.elementAt(j);
                current_traj.addElement(new Point2D.Double(current_planete._position.x, current_planete._position.y));
                all_traj.setElementAt(current_traj, j);
 
                }
 
 
       }
 
}


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 08:59:05    

au lieu d'utiliser ton Np, utilise la méthode size () de Vector.
Comme ca t'es sur d'avoir tjs la bonne taille et ca t'évite aussi de gérer un compteur à coté

Reply

Marsh Posté le 29-01-2003 à 09:03:53    

"Principale.java" : Erreur No. 300 : méthode size(java.util.Vector) introuvable  dans classe mvt_planete.Principale en ligne 156, colonne 40

gloop a écrit :

au lieu d'utiliser ton Np, utilise la méthode size () de Vector.
Comme ca t'es sur d'avoir tjs la bonne taille et ca t'évite aussi de gérer un compteur à coté

voilà, j'ai remplacé dans la classe principale, j'ai mis ça :
 

result = new Calcul(tab_planetes,10,size(tab_planetes),1);


 
là il est compile meme plus... :/ ouinnnnn on dirait que je fais que des erreurs :cry:
 

"Principale.java" : Erreur No. 300 : méthode size(java.util.Vector) introuvable  dans classe mvt_planete.Principale en ligne 156, colonne 40


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 09:05:38    

Code :
  1. tab_planets.size ()


et t'as plus besoin de passer en paramétres. tu peux l'utiliser directement dans ta fonction


Message édité par gloop le 29-01-2003 à 09:06:17
Reply

Marsh Posté le 29-01-2003 à 09:06:05    

tab_planetes.size(), c'est mieux.
 
edit : je suis grillé.


Message édité par Cherrytree le 29-01-2003 à 09:06:27

---------------
Le site de ma maman
Reply

Marsh Posté le 29-01-2003 à 09:06:36    

oups, j'ai rien dit, j'avais mal fait la syntaxe...
 
 
 
mainetanant le meilleur pour la fin :
 
le programme part en boucle infini :/ au moment du calcul :/


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 09:07:57    

t'as mis
 

Code :
  1. for (j=0;j<Np;i++)

 
mais ce serait sans doute  
 

Code :
  1. for (j=0;j<Np;j++)

Reply

Marsh Posté le 29-01-2003 à 09:11:14    

gloop a écrit :

t'as mis
 

Code :
  1. for (j=0;j<Np;i++)

 
mais ce serait sans doute  
 

Code :
  1. for (j=0;j<Np;j++)

 

chu trop nul :/
 
 
 
bon, encore un probleme, je vois pas ce qu'il ne va pas là :
 
 
il me sort la meme erreur avec indice exceed :
 

Exception occurred during event dispatching:
java.lang.ArrayIndexOutOfBoundsException: 3 >= 0
 at java.util.Vector.elementAt(Vector.java:417)
 at mvt_planete.Calcul.<init>(Calcul.java:72)
 at mvt_planete.Principale.actionPerformed(Principale.java:158)
 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
 at javax.swing.AbstractButton$ForwardAc


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 09:18:24    

apparemment, d'apres le message d'erreur ça viendrait de cette ligne :
 

current_traj = (Vector) all_traj.elementAt(j);


 
mais je vois pas ce qui ne va pas la dedans


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 09:21:52    

t'essai d'acceder à l'indice 3 de ton vecteur qui ne contient aucun elt. Verifie tes tailles et indices

Reply

Marsh Posté le 29-01-2003 à 09:25:08    

gloop a écrit :

t'essai d'acceder à l'indice 3 de ton vecteur qui ne contient aucun elt. Verifie tes tailles et indices

ça doit pas etre ça, parce que je viens de mettre un println, et il me sort bien que j'ai 3 composantes dans mon vecteur... non nulles qui plus est :/


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 09:31:27    

j'ai pas relu tout le code mais au début tu initialises all_traj comme un Vector. Apparemment tu veux un vecteur de vecteurs mais tu initiliases pas les vecteurs à l'intérierur. Au début essaie d'ajouter ca:
 

Code :
  1. all_traj = new Vector ();
  2. for (i = 0; i < Np; ++i)
  3.    all_traj.addElement (new Vector ());

Reply

Marsh Posté le 29-01-2003 à 09:32:39    

gloop a écrit :

j'ai pas relu tout le code mais au début tu initialises all_traj comme un Vector. Apparemment tu veux un vecteur de vecteurs mais tu initiliases pas les vecteurs à l'intérierur. Au début essaie d'ajouter ca:
 

Code :
  1. all_traj = new Vector ();
  2. for (i = 0; i < Np; ++i)
  3.    all_traj.addElement (new Vector ());

 

c'est exactement ce que je veux oui, un vecteur de vecteur. j'essaie ton code.


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 09:34:59    

ouinnnnnnnnnn, ça a évolué, mais ça pose toujours probleme, voilà le msg d'erreur :
 

Exception occurred during event dispatching:
java.lang.ArrayIndexOutOfBoundsException: 2 >= 2
 at java.util.Vector.elementAt(Vector.java:417)
 at mvt_planete.Calcul.<init>(Calcul.java:76)
 at mvt_planete.Principale.actionPerformed(Principale.java:159)


 
cette fois il dit 2>=2  :heink:


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 09:43:41    

je vais essayer d'expliquer ce que j'ai tapé à la fin de ma classe calcul :
 

current_traj = (Vector) all_traj.elementAt(j);
                current_traj.addElement(new Point2D.Double(current_planete._position.x, current_planete._position.y));
                all_traj.setElementAt(current_traj, j);


 

  • la premiere ligne me permet de récupérer le vecteur de trajectoire de la planete courrante, il s'agit d'un vecteur, et all_traj lui est aussi un vecteur qui contient Np Vecteur (autant que de trajectoires ,autant que de planetes)


  • la seconde, je l'ai faite dans le but, d'ajouter un élément de type point2D.Double au vecteur courant.


  • enfin la troisieme me permet de remplacer le contenu de le j-ième vecteur de mon vecteur all_traj par le vecteur current_traj


 
autrement dit le but, est d'ajouter un élément de type Point2D.Double à un vecteur lui meme contenu dans un vecteur.


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 09:47:06    

ca plante sur quelle ligne ?

Reply

Marsh Posté le 29-01-2003 à 09:48:10    

gloop a écrit :

ca plante sur quelle ligne ?

la premiere...  avec le message :
 

Exception occurred during event dispatching:
 
java.lang.ArrayIndexOutOfBoundsException: 2 >= 2
 
 at java.util.Vector.elementAt(Vector.java:417)
 
 at mvt_planete.Calcul.<init>(Calcul.java:76


 
les deux éléments sont non nuls...
 
EDIT : Quand je dis la premiere, c'est la premiere des trois que j'ai expliqué plus haut... :jap:


Message édité par zytrahus5 le 29-01-2003 à 09:48:48

---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 09:52:36    

tu vas une unité trop loin avec j. Vérifie tes tests de boucle

Reply

Marsh Posté le 29-01-2003 à 09:53:24    

[citation=296076,1][nom]gloop a écrit[/nom]tu vas une unité trop loin avec j. Vérifie tes tests de boucle
[/citationp]  
 
 
pourtant je mets bien < (strictement) Np ?


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 09:54:45    

utilise la méthode size () sur le vector que tu veux parcourir, ca t'evitera des probs d'indices

Reply

Marsh Posté le 29-01-2003 à 09:55:22    

j'ai trouvé....
 
 
mes trois lignes étaient pas dans la bonne boucle, une acolode fermée trop tot :/


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 09:59:48    

si je veux que ma classe calcul renvoi le vecteur de vecteur, il faut que je modifie toute ma classe non ?
 
 
parce que là, j'ai qu'un constructeur :/ il faudrait que je mette tout dans une méthode...
 
? :??:


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 10:03:27    

a moins que je puisse accéder aux attributs de la classe calcul par le biais du constructeur que j'ai créé dans la fenetre principale ?
 

if (src==calcul)
   {
   result = new Calcul(tab_planetes,10,1);
    // setVisible(true); // ouverture de la fenêtre Principale
   }


 
par exemple, si je le complete de cette façon :
 
 

if (src==calcul)
   {
   result = new Calcul(tab_planetes,10,1);
   //vect_aff déclaré plus en tant que vecteur de vecteur
   vect_aff = result.all_traj;
    // setVisible(true); // ouverture de la fenêtre Principale
   }


 
est ce que ça serait bon ? :??:


---------------
http://www.zytratech.com
Reply

Marsh Posté le 29-01-2003 à 11:35:49    

zytrahus5 a écrit :

a moins que je puisse accéder aux attributs de la classe calcul par le biais du constructeur que j'ai créé dans la fenetre principale ?
 

if (src==calcul)
   {
   result = new Calcul(tab_planetes,10,1);
    // setVisible(true); // ouverture de la fenêtre Principale
   }


 
par exemple, si je le complete de cette façon :
 
 

if (src==calcul)
   {
   result = new Calcul(tab_planetes,10,1);
   //vect_aff déclaré plus en tant que vecteur de vecteur
   vect_aff = result.all_traj;
    // setVisible(true); // ouverture de la fenêtre Principale
   }


 
est ce que ça serait bon ? :??:  


 
oui, mais vaut mieux créer une méthode d'accés plutot que de tout mettre en public.
dans cette méthode tu renvoies soit une copie de ton vecteur soit directement la référence, c'est à toi de voir ce que tu veux en faire.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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