Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1399 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] - Help Méchament Needed en post #4 - (projet CO inside) :/

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] - Help Méchament Needed en post #4 - (projet CO inside) :/

n°295484
zytrahus5
wait what?
Posté le 28-01-2003 à 16:17:55  profilanswer
 

salut
 
voilà, j'ai un projet à faire, assez simple, il consiste à afficher (et calculer) les trajectoires de planetes dans l'espace...  
 
faire une GUI pour saisir les planetes, masses, position, vitesse, etc...
 
on a les équations, et aussi les classes d'affichages de points (Point2D.Double en arguement)
 
bref, voilà ce que j'ai tapé :
 
la classe calcul prend en argument un vector d'objet de type planete (attributs : _nom _masse _vitesse etc...)
 
 
 
mais quand je tente de copier le contenu d'un élément du vecteur dans un objet de type Planete (donc du meme type) voilà ce qu'il me dit :
 

"Calcul.java" : Erreur No. 354 : types incompatibles ; trouvé : java.lang.Object, requis : mvt_planete.Planete en ligne 43, colonne 63


 
 
Voilà ma classe calcul...
 
Qu'en pensez vous ?
 
 
 
 

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 = all_planetes.elementAt(j);
 
 
                      //Calcul des COEFFICIENTS A, B et C
                      for (i=0;i<Np;i++)
                            {
                            if (j!=i)
                                {
                                other_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 = all_traj.elementAt(j);
                current_traj.addElement(new Point2D.Double(current_planete._position.x, current_planete._position.y));
                all_traj.setElementAt(current_traj, j);
 
                }
 
 
       }
 
}


Message édité par zytrahus5 le 28-01-2003 à 18:15:16

---------------
http://www.zytratech.com
mood
Publicité
Posté le 28-01-2003 à 16:17:55  profilanswer
 

n°295507
dsls
Posté le 28-01-2003 à 16:38:44  profilanswer
 

Il faut caster ... elementAt() te renvoie un Object, pas un Planete.
 

Code :
  1. current_planete = (Planete) all_planetes.elementAt(j);

n°295527
zytrahus5
wait what?
Posté le 28-01-2003 à 17:05:26  profilanswer
 

Dsls a écrit :

Il faut caster ... elementAt() te renvoie un Object, pas un Planete.
 

Code :
  1. current_planete = (Planete) all_planetes.elementAt(j);



merci beaucoup :jap: sur le dernier, il fallait le caster en Vector, parce que c'est un vecteur de vecteur... Mais c'est bon là :)
 
 
 
Plus basiquement, j'ai un autre problème :/
 
J'ai créé une classe ajout_planete qui me permet de saisir des données dans des champs et ensuite de les renvoyer à la classe qui l'a appelé.
 
 
Là elle est encore toute simple, je n'ai pas afficher encore tous les champs, mais déjà la elle ne veut pas afficher un pauvre texte avec system.println :/  
 
Je n'ai pas encore ajouté le fait qu'elle retourne un objet de type planete... enfin bref :
 
 
voici cette classe :
 

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;
import javax.swing.JComponent;
 
/**
 * Titre :        Mouvement Planete
 * Description :
 * Copyright :    Copyright (c) 2002
 * Société :
 * @author
 * @version 1.0
 */
 
public class ajout_planete extends JFrame implements ActionListener{
 
    JTextField nom;
    JTextField masse;
    JButton valid;
    JLabel lab_masse;
 
  public ajout_planete() {
    super ("Ajout d'une planète" );
 
    JPanel pane = new JPanel();
    //Ajout du champ nom
    int i=1;
    String note2 = "Planete"+i;
    JTextField nom = new JTextField(note2,10);
    //Ajout du champ masse
    JLabel lab_masse = new JLabel("masse" );
    JTextField masse = new JTextField(10);
    //ajout du bouton de validation
    String note = "Valider";
    JButton valid = new JButton(note);
    valid.addActionListener (this);
    //mise en page
 
    pane.add("",nom);
    pane.add("",lab_masse);
    pane.add("",masse);
    pane.add("",valid);
    this.setContentPane(pane);
    }
 
  public void actionPerformed (ActionEvent evt ) {
    Object src=evt.getSource();
    System.out.println(" "+src.hashCode());
 
    if (src==valid)
    {
System.out.println("test " );
 
 
    WindowListener l = new WindowAdapter()
     { public void windowclosing() { System.exit(0);} };
 
        //frame.addWindowListener(l);
        //frame.pack();
        //frame.setVisible(true);
      }
 
    }
 
}


---------------
http://www.zytratech.com
n°295547
zytrahus5
wait what?
Posté le 28-01-2003 à 17:29:19  profilanswer
 

il ne rentre jamais dans ce test (dans ma classe ajout_planete)
 

if (src==valid)
   {
System.out.println("test " );
 


 
pourtant tout semble bien déclaré... et il ne me sort pas d'erreur :/


---------------
http://www.zytratech.com
n°295606
zytrahus5
wait what?
Posté le 28-01-2003 à 18:13:48  profilanswer
 

Bon, il me semble avoir réglé mes problèmes, mais un autre a apparu...
 
 
j'ai une classe graphique... ajout_planete elle possede des champs, et je sais comment convertir les string en double, mais mon probleme réside dans le fait que je dois renvoyer un objet de type Planete au moment ou je clique sur le bouton valider mais je sais pas comment faire, parce que ma méthode actionperformed ne veut pas que je renvois autre chose que void...
 
 
donc j'ai créé une méthode renvoi_planete mais ça marche pas... je crois que ça marche pas parce que je l'appelle depuis la methode actionperformed, mais je suis pas sur...
 
 
pouvez vous me dire comment renvoyer un objet de type Planete à la classe qui a appelé celle ci :
 

package mvt_planete;
 
import java.util.Vector;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.geom.Point2D;
 
/*
*/
 
/**
 * Titre :        Mouvement Planete
 * Description :
 * Copyright :    Copyright (c) 2002
 * Société :
 * @author
 * @version 1.0
 */
 
public class ajout_planete extends JFrame implements ActionListener {
JButton valid;
Planete new_planete;
 
 public ajout_planete() {
 
      Planete new_planete = new Planete();
 
      JPanel pane = new JPanel();
      valid = new JButton("Valider" );
      valid.addActionListener (this);
 
      pane.add("",valid);
      this.setContentPane(pane);
 
      }
 
 // Gestion des réponses aux évènements
 public void actionPerformed (ActionEvent evt )
 { Object src=evt.getSource(); // source des évènements (boutons)
   //System.out.println(" "+src.hashCode()); // marquage source évènement
 
 
 
 
 
   if (src==valid) // LANCE LA FENETRE D AJOUT DE PLANETE...
   {
     WindowListener l = new WindowAdapter()
     { public void windowclosing() { System.exit(0);} };
       }
     System.out.println("FUCK " );
     renvoi_planete();
 
 
 
 }
public Planete renvoi_planete () {return (new_planete);}
 
 
 
}


 
merci pour le coup de main, parce que là je bloque vraiment :/


---------------
http://www.zytratech.com
n°295625
zytrahus5
wait what?
Posté le 28-01-2003 à 18:38:02  profilanswer
 

zytrahus5 a écrit :

Bon, il me semble avoir réglé mes problèmes, mais un autre a apparu...
 
 
j'ai une classe graphique... ajout_planete elle possede des champs, et je sais comment convertir les string en double, mais mon probleme réside dans le fait que je dois renvoyer un objet de type Planete au moment ou je clique sur le bouton valider mais je sais pas comment faire, parce que ma méthode actionperformed ne veut pas que je renvois autre chose que void...
 
 
donc j'ai créé une méthode renvoi_planete mais ça marche pas... je crois que ça marche pas parce que je l'appelle depuis la methode actionperformed, mais je suis pas sur...
 
 
pouvez vous me dire comment renvoyer un objet de type Planete à la classe qui a appelé celle ci :
 

package mvt_planete;
 
import java.util.Vector;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.geom.Point2D;
 
/*
*/
 
/**
 * Titre :        Mouvement Planete
 * Description :
 * Copyright :    Copyright (c) 2002
 * Société :
 * @author
 * @version 1.0
 */
 
public class ajout_planete extends JFrame implements ActionListener {
JButton valid;
Planete new_planete;
 
 public ajout_planete() {
 
      Planete new_planete = new Planete();
 
      JPanel pane = new JPanel();
      valid = new JButton("Valider" );
      valid.addActionListener (this);
 
      pane.add("",valid);
      this.setContentPane(pane);
 
      }
 
 // Gestion des réponses aux évènements
 public void actionPerformed (ActionEvent evt )
 { Object src=evt.getSource(); // source des évènements (boutons)
   //System.out.println(" "+src.hashCode()); // marquage source évènement
 
 
 
 
 
   if (src==valid) // LANCE LA FENETRE D AJOUT DE PLANETE...
   {
     WindowListener l = new WindowAdapter()
     { public void windowclosing() { System.exit(0);} };
       }
     System.out.println("FUCK " );
     renvoi_planete();
 
 
 
 }
public Planete renvoi_planete () {return (new_planete);}
 
 
 
}


 
merci pour le coup de main, parce que là je bloque vraiment :/

[:screamfr] s'il vous plait il ne me reste vraiment plus beaucoup de temps avant de devoir le rendre... :hello:


---------------
http://www.zytratech.com
n°295638
zytrahus5
wait what?
Posté le 28-01-2003 à 18:50:41  profilanswer
 

comment on fait pour renvoyer un double depuis la méthode d'une classe qui renvoit déjà void (non modifiable) ?


---------------
http://www.zytratech.com
n°295644
darklord
You're welcome
Posté le 28-01-2003 à 19:09:14  profilanswer
 

zytrahus5 a écrit :

comment on fait pour renvoyer un double depuis la méthode d'une classe qui renvoit déjà void (non modifiable) ?


 
bin si la méthode renvoit rien elle peut pas renvoyer un double hein!
 
 [:rofl]


---------------
Just because you feel good does not make you right
n°295671
zytrahus5
wait what?
Posté le 28-01-2003 à 19:49:49  profilanswer
 

DarkLord a écrit :


 
bin si la méthode renvoit rien elle peut pas renvoyer un double hein!
 
 [:rofl]  

c'est pour ça que je demande, comment faire pour renvoyer une variable par une autre méthode...


Message édité par zytrahus5 le 28-01-2003 à 19:50:30

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] - Help Méchament Needed en post #4 - (projet CO inside) :/

 

Sujets relatifs
comment créer un ficher .class à partir d'un .java ? Helpppppppppppppje recherche un ide a telecharger pour java
Certains Webmasters ont la tête dans les nuages... Faille inside(quiche inside) Vous avez des exemples de makefile pour voir ?
[Help] Souci aux niveaux des sessions sous Win XP [presque Resolu]Cherche plugins, script php java pour remplir mon intranet :)
Projet C++ : Création et utilisation d'objets multiplesJ'arrive pas a faire un beau tableau nikel.. (CSS inside)
Cookie Very HELPcomment faire un moteur 2d en java
Plus de sujets relatifs à : [Java] - Help Méchament Needed en post #4 - (projet CO inside) :/


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR