[urgent]passage de variable entre les class

Résolu
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 8 juin 2006 à 11:53
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 9 juin 2006 à 10:54
Bonjour tout le monde

Voici la class Calcul

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;



public class Calcul
{



 float totaldue=0;



 int temps=0;





boolean som=false;



String riendanssommdemande;



float taux=0,totalannee=0, tempstaux=0,moi=0;
int emprunt=0;




 



float sommprelev=0;



public float pret(boolean som,String riendanssommdemande, float taux, float totalannee, float tempstaux, float moi, int emprunt, float totaldue, int temps)



{



riendanssommdemande = Integer.toString(emprunt);





if(som==true)
{
 if(riendanssommdemande.equals("")||taux ==0)
 {





JOptionPane.showMessageDialog(null,"Formulaire incomplet");





 }



  else
  {
   
  



        moi=(int)(emprunt*taux/100) +  (int)emprunt;
     
    totalannee=moi*12;
   
   
    tempstaux=taux/100;
  



     return totaldue=temps*totalannee+tempstaux;





    }
}





return totaldue;



}



public float affichetable(float sommprelev, float moi, float totaldue, int temps  )





{



sommprelev=totaldue/temps;





return sommprelev;



}



public void main(String[] args)
{





pret( som, riendanssommdemande, taux, totalannee, tempstaux, moi, emprunt, totaldue, temps);



affichetable(sommprelev, moi, totaldue, temps);




 





}



 
}


voici la class modetable


import javax.swing.table.AbstractTableModel;



import java.util.Vector;



import java.util.GregorianCalendar;
import java.util.Calendar;
import java.util.Date;



public class modetable extends AbstractTableModel
{



Calcul c = new Calcul();




 



float f =c.affichetable(sommprelev, moi, totaldue, temps);



GregorianCalendar calendar = new java.util.GregorianCalendar();



int ligne=0;
int i;





public Object getValueAt(int rows, int cols)
{





}



public int rows(int ligne)
{



c.affichetable(sommprelev,temps);



ligne=temps*12;



for(i=1;i<ligne;i++)
{



calendar.add (Calendar.MONTH, 1);




 



}





}



public int getRowCount()
{





}
public int getColumnCount()
{




 



}
public void main(String[] args)
{




 



}



}

Mon probleme est que javac me demande déclarer sommprelev et temps, alors qu'ils sont déja déclaré dans la class calcul.


erreur:



modetable.java:45: not a statement
c.sommprelev;
 ^
modetable.java:47: not a statement
c.temps;
 ^
2 errors


Pourriez vous me dire clairement comment passé une variable d'une class a l'autre.

Dans mes il n'ont pas mis d'exemple concret.

Merci

Cordialement

A bientôt

7 réponses

developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
9 juin 2006 à 10:54
Bonjour tout le monde

Ca y 'est j'ai compris j'ai fais dans modetable.

Déclaré les variables ci-dessous.

int nb;
float preleve;

ensuite:

nb=c.getTemps();



preleve=c.getSommprelev();


Il n'ya plus d'erreur.

Merci de votre aide.

Cordialement

A bientôt
3
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
8 juin 2006 à 11:55
Re

J'ai oublié de vous dire que je fai un tableau pour un projet de systeme de pret.

A+
0
HSylvio Messages postés 116 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 14 juin 2012
8 juin 2006 à 12:24
Il faut que tu les déclares en public:
public float somPrelev....
comme ca tu pourras faire c.somPrevel

ou alors fais une methode publique
private float somPrelev ....
public float getSommPrelev(){return somPrevel;}
et alors c.getSomPrelev() te renverra ta valeur; et en plus tu ne risques pas de modifier somPrelev à l'intérieur de Calcul.

Voila je pense que c'est tou ...

Ah sinon évites de modifier trop tes sources car j'aurai bien aimé trouver c.temps ou c.somPrelev :
modetable.java:47: not a statement
c.temps;
dans ton post...

J'espere que ca répond a ta question.
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
8 juin 2006 à 12:45
Re

Revoici les class modifié et l'erreur.

Class Calcul.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;



public class Calcul
{



public float totaldue=0;



public int temps=0;





public float moi=0;


boolean som=false;


String riendanssommdemande;


float taux=0,totalannee=0, tempstaux=0;
int emprunt=0;


 


public float sommprelev=0;


public float pret(boolean som,String riendanssommdemande, float taux, float totalannee, float tempstaux, float moi, int emprunt, float totaldue, int temps)


{




riendanssommdemande = Integer.toString(emprunt);


 


if(som==true)
{
 if(riendanssommdemande.equals("")||taux ==0)
 {




JOptionPane.showMessageDialog(null,"Formulaire incomplet");




 }


  else
  {
   
  


        moi=(int)(emprunt*taux/100) +  (int)emprunt;
     
    totalannee=moi*12;
   
   
    tempstaux=taux/100;
  


     return totaldue=temps*totalannee+tempstaux;




    }
}




return totaldue;


}


public float affichetable(float sommprelev, float moi, float totaldue, int temps  )




{


sommprelev=totaldue/temps;




return sommprelev;


}


public void main(String[] args)
{




pret( som, riendanssommdemande, taux, totalannee, tempstaux, moi, emprunt, totaldue, temps);


affichetable(sommprelev, moi, totaldue, temps);


 




}


 
}







class modetable.

import javax.swing.table.AbstractTableModel;



import java.util.Vector;



import java.util.GregorianCalendar;
import java.util.Calendar;
import java.util.Date;



public class modetable extends AbstractTableModel
{





Calcul c = new Calcul();




 



float f =c.affichetable(sommprelev, moi, totaldue, temps);



c.sommprelev=0;
c.moi=0;
c.totaldue=0;
c.temps=temps*12;




 





GregorianCalendar calendar = new java.util.GregorianCalendar();



int ligne=0;
int i;





public Object getValueAt(int rows, int cols)
{




 





}



public int rows(int ligne)
{




 




 




 





ligne=temps;



for(i=1;i<ligne;i++)
{



calendar.add(Calendar.MONTH, 1);



calendar.add(Calendar.YEAR, 1);




 



}





}



public int getRowCount()
{





}
public int getColumnCount()
{




 



}




 





public void main(String[] args)
{




 



}



}

Voici les erreur.

modetable.java:21: expected
c.sommprelev=0;
            ^
modetable.java:22: expected
c.moi=0;
     ^
modetable.java:23: expected
c.totaldue=0;
          ^
modetable.java:24: expected
c.temps=temps*12;
       ^
4 errors

Là j'ignore ce qui ne va pas.


A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
noname85 Messages postés 33 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 21 novembre 2006
8 juin 2006 à 14:24
Salut


tu devrais utiliser des variable privée ( private au lieu de public) et créer des méthodes d'accès à ces variables !!


Par exemple :

private float moi=0;

et deux méthodes :


public float getMoi() {

    return moi;

}


public void setMoi(float value) {

    moi = value;

}

NoName85

Et que Dieu vous garde, parce que moi j'ai pas le temps !!!
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
8 juin 2006 à 15:01
Re

class calcul

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;



public class Calcul
{



public float totaldue=0;



public int temps=0;





public float moi=0;



boolean som=false;



String riendanssommdemande;



float taux=0,totalannee=0, tempstaux=0;
int emprunt=0;




 



public float sommprelev=0;



public float pret(boolean som,String riendanssommdemande, float taux, float totalannee, float tempstaux, float moi, int emprunt, float totaldue, int temps)



{





riendanssommdemande = Integer.toString(emprunt);




 



if(som==true)
{
 if(riendanssommdemande.equals("")||taux ==0)
 {





JOptionPane.showMessageDialog(null,"Formulaire incomplet");





 }



  else
  {
   
  



        moi=(int)(emprunt*taux/100) +  (int)emprunt;
     
    totalannee=moi*12;
   
   
    tempstaux=taux/100;
  



     return totaldue=temps*totalannee+tempstaux;





    }
}





return totaldue;



}



public float affichetable(float sommprelev, float moi, float totaldue, int temps  )





{



sommprelev=totaldue/temps;





return sommprelev;



}



public void main(String[] args)
{





pret( som, riendanssommdemande, taux, totalannee, tempstaux, moi, emprunt, totaldue, temps);



affichetable(sommprelev, moi, totaldue, temps);




 





}
public int getTemps();
{



return temps;
}



public float getSommprelev()
{
return sommprelev;



}



 
}



Voici l'erreur

Calcul.java:105: missing method body, or declare abstract
public int getTemps();
           ^
Calcul.java:108: return outside method
return temps;
^
2 errors

La variable temps est une varable de type  donc je ne voix pas où est le probleme.

Apres pourriez vous me dire comment récupéré le contenu des variable dans la class modetable.

Merci

A+
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
8 juin 2006 à 15:07
re

le probleme est réglé, j'ai mis un ; a coté des ().

dans la class calcul, il n'y à plus d'erreur.

Comment faire avec la class modetable.

A +
0
Rejoignez-nous