Problème dans mon code java

Fermé
lala - 28 févr. 2009 à 17:30
 Utilisateur anonyme - 1 mars 2009 à 01:01
Bonjour,
j'ai un problème, l'exécution de mon petit programme calculatrice ne donne pas le résultat souhaité . Voila mon code:import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.math.*;
public class calculatrice extends JFrame implements ActionListener

{JButton b1;
JButton b2;
JButton b3 ;
JButton b4;
JButton b5;
JButton b6;
JButton b7;
JButton b8;
JButton b9;
JButton b0;
JButton plus;
JButton moins;
JButton foi;
JButton vir;
JButton plusmoin;
JButton div;
JButton egal;

JTextField txt;
public calculatrice()
{
JButton b1= new JButton("1");
JButton b2= new JButton("2");
JButton b3= new JButton("3");
JButton b4=new JButton("4");
JButton b5=new JButton("5");
JButton b6=new JButton("6");
JButton b7=new JButton("7");
JButton b8=new JButton("8");
JButton b9=new JButton("9");
JButton b0=new JButton("0");
JButton plus=new JButton("+");
JButton moins=new JButton("-");
JButton foi=new JButton("*");
JButton vir=new JButton(",");
JButton plusmoin=new JButton("+/-");
JButton div=new JButton("/");
JButton egal=new JButton("=");

txt= new JTextField();
JPanel p1= new JPanel();
p1.setLayout(new GridLayout(1,4));
p1.add(b1);
p1.add(b2);
p1.add(b3);
p1.add(plus);
JPanel p2= new JPanel();
p2.setLayout(new GridLayout(1,4));
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.add(moins);
JPanel p3= new JPanel();
p3.setLayout(new GridLayout(1,4));
p3.add(b7);
p3.add(b8);
p3.add(b9);
p3.add(foi);
JPanel p4= new JPanel();
p4.setLayout(new GridLayout(1,4));
p4.add(b0);
p4.add(plusmoin);
p4.add(vir);
p4.add(div);
JPanel p7= new JPanel();
p7.setLayout(new GridLayout(1,1));
p7.setLayout(new GridLayout(1,1,15,10));
p7.add(txt);
JPanel p5= new JPanel();
p5.setLayout(new GridLayout(1,1,15,10));
p5.add(egal);
Container c= this.getContentPane();
c.setLayout(new GridLayout(6,1));
c.add(p7);
c.add(p1);
c.add(p2);
c.add(p3);
c.add(p4);
c.add(p5);
this.show();
this.setTitle("Calculatrice");
this.setSize(400,500);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b0.addActionListener(this);
plus.addActionListener(this);
moins.addActionListener(this);
foi.addActionListener(this);
vir.addActionListener(this);
div.addActionListener(this);
plusmoin.addActionListener(this);

}

public void actionPerformed( ActionEvent e)
{
JButton source=new JButton();
source=(JButton)e.getSource();
int m=0,b=0,op=0,vi=0;
double res1=0, res2=0;
int c=0;
String msg="";

//***************
if(source==b1)
{ m++;
if(vi==1)
{
msg+=1*Math.pow(10,-m)+"";
txt.setText(msg);
if(b==0)
res1= res1 + (1*Math.pow(10,-m));
else
res2+= 1*Math.pow(10,-m);
}

else
{
msg+=1*Math.pow(10,m)+"";
txt.setText(msg);
if(b==0)
res1+= 1*Math.pow(10,m);
else
res2+= 1*Math.pow(10,m);
}
}

//***********
if(source==b2)
{ m++;
if(vi==1)
{
msg+=2*Math.pow(10,-m)+"";
txt.setText(msg);
if(b==0)
res1+= 2*Math.pow(10,-m);
else
res2+= 2*Math.pow(10,-m);
}

else
{
msg+=2*Math.pow(10,-m)+"";
txt.setText(msg);
if(b==0)
res1+= 2*Math.pow(10,m);
else
res2+= 2*Math.pow(10,m);
}
}
//**********************
if(source==b3)
{ m++;
if(vi==1)
{
msg+=3*Math.pow(10,-m)+"";
txt.setText(msg);
if(b==0)
res1+= 3*Math.pow(10,-m);
else
res2+= 3*Math.pow(10,-m);
}

else
{
msg+=3*Math.pow(10,m)+"";
txt.setText(msg);
if(b==0)
res1+= 3*Math.pow(10,m);
else
res2+= 3*Math.pow(10,m);
}
}
//*********************
if(source==b4)
{ m++;
if(vi==1)
{
msg+=4*Math.pow(10,-m)+"";
txt.setText(msg);
if(b==0)
res1+= 4*Math.pow(10,-m);
else
res2+=4*Math.pow(10,-m);
}

else
{
msg+=4*Math.pow(10,m)+"";
txt.setText(msg);
if(b==0)
res1+= 4*Math.pow(10,m);
else
res2+= 4*Math.pow(10,m);
}
}
//**********************
if(source==b5)
{ m++;
if(vi==1)
{
msg+=5*Math.pow(10,-m)+"";
txt.setText(msg);
if(b==0)
res1+= 5*Math.pow(10,-m);
else
res2+= 5*Math.pow(10,-m);
}

else
{
msg+=5*Math.pow(10,m)+"";
txt.setText(msg);
if(b==0)
res1+= 5*Math.pow(10,m);
else
res2+= 5*Math.pow(10,m);
}
}
//************
if(source==b6)
{ m++;
if(vi==1)
{
msg+=6*Math.pow(10,-m)+"";
txt.setText(msg);
if(b==0)
res1+= 6*Math.pow(10,-m);
else
res2+= 6*Math.pow(10,-m);
}

else
{
msg+=6*Math.pow(10,m)+"";
txt.setText(msg);
if(b==0)
res1+= 6*Math.pow(10,m);
else
res2+= 6*Math.pow(10,m);
}
}
//**************
if(source==b7)
{ m++;
if(vi==1)
{
msg=7*Math.pow(10,-m)+"";
txt.setText(msg);
if(b==0)
res1+= 7*Math.pow(10,-m);
else
res2+= 7*Math.pow(10,-m);
}

else
{
msg=7*Math.pow(10,m)+"";
txt.setText(msg);
if(b==0)
res1+= 7*Math.pow(10,m);
else
res2+= 7*Math.pow(10,m);
}
}
//*************
if(source==b8)
{ m++;
if(vi==1)
{
msg=8*Math.pow(10,-m)+"";
txt.setText(msg);
if(b==0)
res1+= 8*Math.pow(10,-m);
else
res2+= 8*Math.pow(10,-m);
}

else
{
msg=8*Math.pow(10,m)+"";
txt.setText(msg);
if(b==0)
res1+= 8*Math.pow(10,m);
else
res2+= 8*Math.pow(10,m);
}
}
//***************
if(source==b9)
{ m++;
if(vi==1)
{
msg=9*Math.pow(10,-m)+"";
txt.setText(msg);
if(b==0)
res1+= 9*Math.pow(10,-m);
else
res2+= 9*Math.pow(10,-m);
}

else
{
msg=9*Math.pow(10,m)+"";
txt.setText(msg);
if(b==0)
res1+= 9*Math.pow(10,m);
else
res2+= 9*Math.pow(10,m);
}
}
//**********
if(source==b0)
{ m++;

txt.setText("0");
if(b==0)
res1+= 0;
else
res2+= 0;
}


//********

if(source==vir)
{
vi=1;
}
//*************
if(source==plusmoin)
{
if(c==0)
{c=1;
if(b==0)
res1=res1*(-1);
else res2=res2*(-1);
}
else c=0;
}
//************
if (source == plus)
{b=1;
op=1;
msg="";
txt.setText(msg);
}
//***************
if (source == moins)
{b=1;
op=2;
msg="";
txt.setText(msg);
}
//************
if (source == foi)
{b=1;
op=3;
msg="";
txt.setText(msg);
}
//**************
if (source == div)
{b=1;
op=4;
msg="";
txt.setText(msg);

}

//*************
if( source==egal)
{

if (op==1)
{ msg= res1+res2+"";
txt.setText(msg);
}
if (op==2)
{ msg= res1-res2+"";
txt.setText(msg);
}
if (op==3)
{ msg= res1*res2+"";
txt.setText(msg);
}

if (op==4)
{ msg= res1/res2+"";
txt.setText(msg);
}
}

}
public static void main(String [] argv )
{
calculatrice cal= new calculatrice();
}


}
A voir également:

1 réponse

Utilisateur anonyme
1 mars 2009 à 01:01
Bonjour,


public void actionPerformed( ActionEvent e)
{
JButton source=new JButton();
source=(JButton)e.getSource();
int m=0,b=0,op=0,vi=0;
double res1=0, res2=0;
int c=0;
String msg="";

//***************
if(source==b1)

Ce que tu veux obtenir ici c'est le libellé du bouton cliqué tel que "1", "2" ... "0", "/", "+/-" etc


Commence par remplacer :
JButton source=new JButton();
source=(JButton)e.getSource();

par:
JButton boutonClique = (JButton) e.getSource(); // on recupère tout un blablabla dont text = 9 par exemple
// si on a cliquer le 9
String source = boutonClique.getText(); // ici on récupère le libellé "9"

Autre chose:
if(source==b1) : source est donc un String b1 est un bouton c'est donc faut
rempacer tous les if(source==...)

par :
si c'est if(source==b9)
if(source.equals("9")) //dans notre exemple "9"

Bon ce n'est pas tout ce qu'il y a à faire, mais tu vas voir quelque chose qui doit te permettre de corriger.

Une indication tout de même :
si tu laisse ceci ;
int m=0,b=0,op=0,vi=0;
double res1=0, res2=0;
int c=0;
String msg="";
À chaque clique tu effaces tout. Donc à déplacer !

Vois également pourquoi si on clique le bouton = il ne se passe rien.

N'hésites pas si nécessaire...

Cordialement,

Dan
0