Gestion de banque

Fermé
erramine Messages postés 2 Date d'inscription samedi 29 novembre 2014 Statut Membre Dernière intervention 29 novembre 2014 - Modifié par KX le 29/11/2014 à 14:23
erramine Messages postés 2 Date d'inscription samedi 29 novembre 2014 Statut Membre Dernière intervention 29 novembre 2014 - 29 nov. 2014 à 16:26
je veux creer une fenetre qui gerent les operations bancaires debiter,crediter et le virement
j'est cree 5 classes compte,client,banque (banque extends client et client extends compte),fenetre,et Newmain.le probleme est au niveau du JTextfield je ne sais pas comment modifer le solde initial par la methode debiter.voila les 5 fichiers txt
fenetre

package banque;

import static com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type.Int;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import java.util.Locale;
import javax.swing.BoxLayout;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JToggleButton;

public class fenetre extends JFrame implements ActionListener {
   
    Calendar cal = Calendar.getInstance();
    JPanel pan1 = new JPanel();
    JPanel pan2 = new JPanel();
    JPanel pan3 = new JPanel();
    JPanel pan4 = new JPanel();
    JPanel pan5 = new JPanel();
    JPanel pan6 = new JPanel();
    JPanel pan7 = new JPanel();
    Compte c = new Compte(0,true,0);
    private JLabel label1 = new JLabel("Nom du client");
    private JLabel label2 = new JLabel("Prenom");
    private JLabel label3 = new JLabel("numero du compte");
    private JLabel label7 = new JLabel("Heure");
    private JLabel label5 = new JLabel("minute");
    private JLabel label6 = new JLabel("seconde");
    private JLabel label8 = new JLabel("date de modification");
    private JLabel label9 = new JLabel("Solde actuelle");
    private JLabel label10 = new JLabel("Nouveau solde");
    private JTextField compte;
    private  JTextField nom;
    private JTextField prenom;
    private JTextField heure;
    private JTextField minute;
    private JTextField seconde;
    private JTextField s1;
    private JTextField s2;
    private JLabel label4 = new JLabel("Activer/desactiver le virement");
    private JToggleButton b1 = new JToggleButton("debiter");
    private JToggleButton b2 = new JToggleButton("crediter");
    private JToggleButton b3 = new JToggleButton("virement");
    
    private String[] ac={"Activer","Desactiver"};
    private JComboBox c1= new JComboBox(ac);
    public fenetre(){
    nom = new JTextField(7);
    prenom = new JTextField(7);
    compte =new JTextField(7);
    heure = new JTextField(7);
    minute= new JTextField(7);
    seconde = new JTextField(7);
    s1 = new JTextField(5);
    s2 = new JTextField(5);
    pan1.setLayout(new GridLayout(6,1));
    pan1.add(label1);
    pan1.add(nom);
    pan1.add(label2);
    pan1.add(prenom);
    pan1.add(label4);
    pan1.add(c1);
    pan1.add(label3);
    pan1.add(compte);
    pan1.add(label9);
    pan1.add(s1);
    heure.setText(""+cal.get(Calendar.HOUR)+"");
    minute.setText(""+cal.get(Calendar.MINUTE)+"");
    seconde.setText(""+cal.get(Calendar.SECOND)+"");
    pan2.setLayout(new BorderLayout());
    pan2.add(pan1,BorderLayout.NORTH);
    pan3.setLayout(new GridLayout(1,1));
    pan3.add(b1);
    pan3.add(b2);
    pan3.add(b3);
    pan2.add(pan3,BorderLayout.CENTER);
    pan4.setLayout(new BoxLayout(pan4,BoxLayout.LINE_AXIS));
    pan4.add(label8);
    pan5.setLayout(new BoxLayout(pan5,BoxLayout.LINE_AXIS));
    pan5.add(label7);
    pan5.add(heure);
    pan5.add(label5);
    pan5.add(minute);
    pan5.add(label6);
    pan5.add(seconde);
    pan7.setLayout(new BoxLayout(pan7,BoxLayout.LINE_AXIS));
    pan7.add(label10);
    pan7.add(s2);
    pan6.setLayout(new GridLayout(3,1));
    pan6.add(pan4);
    pan6.add(pan5);
    pan6.add(pan7);
    pan2.add(pan6,BorderLayout.SOUTH);
    b1.addActionListener(this); 
    b2.addActionListener(this);
    b3.addActionListener(this);
    this.setContentPane(pan2);
    this.setVisible(true);
    

    
    
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        
        if(e.getSource()==b1){
            s2.setText(""+debiter(Integer.parseInt(s1.getText()),c)+"");
        }
    }

compte'
package banque;

import java.util.Calendar;
import java.util.Scanner;

public class Compte {
    Calendar cal = Calendar.getInstance();
    private static int compteur=0;
    Scanner sc = new Scanner(System.in);
   private int Numero;
   private boolean  etat;
   private int Solde;
   public Compte(int n,boolean e,int s){
       compteur++;
       Numero=n;
       etat=e;
       Solde=s;  
   }  

   public int getNumero(){
       return Numero;
   }
   public boolean getEtat(){
       return etat;
   }
   public int getSolde(){
       return Solde;
   } 
   public void setNumero(int nu)
   {
       Numero=nu;
   }
   public void setEtat(boolean et)
   {
    etat=et;   
   }
   public void setSolde(int so){
       Solde=so;
   }
  public void debiter(int r,Compte c){
    int somme = 0;
    if(r>0)
    somme=c.getSolde();   
    c.setSolde(r-somme);
   }
   public void crediter(int r,Compte c){
    int somme = 0;
    if(r>0)
    somme=c.getSolde();   
    c.setSolde(r+somme);
   }
   public void virement(Compte c1,Compte c2){
    int s;
    System.out.println("taper une somme a virer");
    s=sc.nextInt();
    debiter(s,c1);
    crediter(s,c2);    
   }
   public void afficher(Compte c){
   System.out.println("Numero du compte:"+compteur+"\nDate de creation:"+cal.get(Calendar.HOUR_OF_DAY)+""+cal.get(Calendar.MINUTE)+""+cal.get(Calendar.SECOND)+"");
   }
}

client

package banque;

public class Client extends Compte{
private String Nom;
private String Prenom;
private String Telephone;
private Compte[] c=new Compte[6];

    public Client(int n,boolean e,int s,String no,String pr,String Te,Compte co[]) {
        super(n, e, s);
        Nom=no;
        Prenom=pr;
        Telephone=Te;
        c=co;
    }
    
    
    }

banque

package banque;

import java.util.Scanner;

public class Banque extends Client{
private String nom;
private String adresse;
private String telephone;
private Client[] cl= new Client[6];        
Scanner sc = new Scanner(System.in);

    public Banque(int n, boolean e, int s, String no, String pr, String Te, Compte[] co) {
        super(n, e, s, no, pr, Te, co);
    }


   public String getNom(){
       return nom;
       
    }
   public String getAdresse(){
       return adresse;
   }
   public String getTelephone(){
       return telephone;
   }
   public void setAdresse(String adresse){
       this.adresse=adresse;
   }
   public void setNom(String nom){
       this.nom=nom;
   }
   public void setTelephone(String telephone){
       this.telephone=telephone;
   }
    
    
}

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
29 nov. 2014 à 14:33
Bonjour,

"comment modifer le solde initial par la methode debiter"
Tu ne peux pas remplacer un nombre par une méthode, ça n'a pas de sens.
Peut-être voulais tu dire, "par le résultat de la méthode", mais
debiter
n'as pas de résultat vu qu'elle est de type void...
De plus la méthode debiter utilise la valeur du solde dans son calcul, donc tu ne peux pas initialiser le solde avec le résultat d'une méthode qui aura besoin que le solde soit déjà initialisé... ça tourne en rond !

Remarque : vu ton code il n'y a pas de raison d'avoir des dépendances comme ça :
import static com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type.Int;
0
erramine Messages postés 2 Date d'inscription samedi 29 novembre 2014 Statut Membre Dernière intervention 29 novembre 2014
29 nov. 2014 à 16:26
merci KX mais j ai pas compris le probleme d'initialisation du solde .est tu peux m'aider a rectifier la methode debiter
0