Progrmmation

todemfeuwoboris Messages postés 4 Date d'inscription dimanche 16 mai 2010 Statut Membre Dernière intervention 12 juin 2011 - 12 juin 2011 à 23:37
 Utilisateur anonyme - 16 juin 2011 à 23:09
voici mon code et j'ai cette erreur
code
public class compl {
private float Reel;
private float Imaginaire;


/**************** Constructor *******************/

public compl(){
this.Reel = 0;
this.Imaginaire = 0;
}

public compl (int reel,int img){
this.Reel = reel;
this.Imaginaire = img;

}

/**************** Get values *******************/

public float getreel(){
return this.Reel;
}

public float getimag(){
return this.Imaginaire;
}


/**************** Set values *******************/

public void setreel(float Creel){
this.Reel = Creel;
}

public void setimg(float Cimaginaire){
this.Imaginaire = Cimaginaire;
}
public compl Additioncomp (compl a,compl b){

float c,f;
compl v = new compl();
c = a.getreel()+ b.getreel();
v.setreel(c);
f = a.getimag()+ b.getimag();
v.setimg(f);

return(v);
}

public compl Soustrationcomp (compl a,compl b){

float c,f;
compl v = new compl();
c = a.getreel()- b.getreel();
v.setreel(c);
f = a.getimag()- b.getimag();
v.setimg(f);

return(v);
}
public compl Multiplicationcomp (compl a,compl b){

float c,f;
compl v = new compl();
c = (a.getreel()*b.getreel())-(a.getimag()* b.getimag());
v.setreel(c);
f = (a.getreel()*b.getimag())+( b.getreel()*a.getimag());
v.setimg(f);

return(v);
}

public compl Divisioncomp (compl a,compl b){
//partie a faire ca ce qui est en place me respecte par ce qui est en place
float c,f;
compl v = new compl();
c = (a.getreel()*b.getreel())-(a.getimag()* b.getimag());
v.setreel(c);
f = (a.getreel()*b.getimag())+( b.getreel()*a.getimag());
v.setimg(f);

return(v);
}

public compl Inversecomp (compl a){
//partie a faire ca ce qui est en place me respecte par ce qui est en place
float c,f;
compl v = null;
c = a.getreel() /((float)(Math.pow(a.getreel(),2))+(float)(Math.pow(a.getimag(),2)));
v.setreel(c);
f = a.getimag() /((float)(Math.pow(a.getreel(),2))+(float)(Math.pow(a.getimag(),2)));
v.setimg(f);

return(v);

}
public compl Opposecomp (compl a){

float c,f;
compl v = null;
c = -(a.getreel()) ;
v.setreel(c);
f = -(a.getimag());
v.setimg(f);

return(v);

}
public compl Modulecomp (compl a){

float c;
compl v = null;
c = (float) Math.sqrt((Math.pow(a.getreel(),2)+ Math.pow(a.getimag(),2)));
v.setreel(c);
return(v);

}
public compl Argumentcomp (compl a){

float c;
compl v = null;
c = (float) Math.atan(a.getimag()/a.getreel());
v.setreel(c);
return(v);
}
public compl Racine_Carrecomp (compl a){

float c;
compl v = null;
c = (float) Math.tan(a.getimag()/a.getreel());//formule a verifier
v.setreel(c);
return(v);
}
}


et voici la fenetre
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.Float.*;

public class fenetre extends JFrame implements ActionListener{

JPanel panelMain,bas;
JMenu menu,menu1;
JMenuBar bar;
JMenuItem item1,item2,item3,item4;
JButton addition,multiplication,division,diviser,additionner,inverse,soustration,oppose,racine_carre,argument,module,quitte,A_propos,Aide;
JButton Iadd,Isous,Idiv,Imult,Iinv,Iop,Iarg,Imod,Irac;
JTextField op1_1,op1_2,op2_1,op2_2;
JLabel result,result1,result2,result3,operante1_1,operante1_2,operante2_1,operante2_2;
JLabel info,affich;
JPanel t = new JPanel();
Font police = new Font("calibri", Font.BOLD, 14);

Font policetext = new Font("Monotype Corsiva",Font.BOLD, 14);
Font fbas = new Font("forte",Font.PLAIN, 36);

compl cp = new compl();
//Inventory in = new Inventory();*/



public fenetre()
{
super("Logiciel Complexe");
init();
panelMain.setBackground(Color.LIGHT_GRAY);
panelMain.setLayout(null);
this.setSize(500,400);
this.setResizable(false);
addObjectInFrame();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setContentPane(panelMain);
panelMain.setVisible(true);
this.setVisible(true);

}
public void addObjectInFrame(){
info.setBounds(130, 20, 300, 30);
this.panelMain.add(info);
this.add(bar);
bar.add(menu);
bar.add(menu1);
bar.add(Aide);
bar.add(A_propos);
bar.add(quitte);

menu.add(item1);
item1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F , KeyEvent.CTRL_DOWN_MASK));
item1.addActionListener(this);

menu.add(item2);
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A , KeyEvent.CTRL_DOWN_MASK));
item2.addActionListener(this);

menu1.add(item3);
item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R , KeyEvent.CTRL_DOWN_MASK));
item3.addActionListener(this);

menu1.add(item4);
item4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U , KeyEvent.CTRL_DOWN_MASK));
item4.addActionListener(this);


panelMain.add(affich);
info.setVisible(true);
this.setJMenuBar(bar);


}

public void init(){
panelMain = new JPanel();

bar = new JMenuBar();

menu = new JMenu("operations");
menu1 = new JMenu("historique");

// menu4 = new JMenu("Quitte");

item1 = new JMenuItem("operation binaire");
item2 = new JMenuItem("operation unaire");
item3 = new JMenuItem("visualise historique");
item4 = new JMenuItem("reinitialise historique");

quitte = new JButton("Quitte");
quitte.addActionListener(this);
A_propos = new JButton("A_propos");
A_propos.addActionListener(this);
Aide = new JButton("Aide");
Aide.addActionListener(this);
Iadd = new JButton("Aide");
Iadd.addActionListener(this);
Isous = new JButton("Aide");
Isous.addActionListener(this);
Imult = new JButton("Aide");
Imult.addActionListener(this);
Idiv = new JButton("Aide");
Idiv.addActionListener(this);
addition = new JButton("Addition");
addition.addActionListener(this);
additionner = new JButton("Additionner");
additionner.addActionListener(this);
multiplication = new JButton("Multiplication");
multiplication.addActionListener(this);
division = new JButton("Division");
division.addActionListener(this);
inverse = new JButton("Inverse");
inverse.addActionListener(this);
soustration = new JButton("soustration");
soustration.addActionListener(this);
module = new JButton("Module");
module.addActionListener(this);
argument = new JButton("Argument");
argument.addActionListener(this);
racine_carre = new JButton("Racine_carre");
racine_carre.addActionListener(this);
oppose = new JButton("Oppose");
oppose.addActionListener(this);

op1_1 = new JTextField();
op1_1.setFont(police);
op1_1.setForeground(Color.DARK_GRAY);
op1_2 = new JTextField();
op1_2.setFont(police);
op1_2.setForeground(Color.DARK_GRAY);
op2_1 = new JTextField();
op2_1.setFont(police);
op2_1.setForeground(Color.DARK_GRAY);
op2_2 = new JTextField();
op2_2.setFont(police);
op2_2.setForeground(Color.DARK_GRAY);

result = new JLabel();
result1 = new JLabel();
result2 = new JLabel();
result3 = new JLabel();
info = new JLabel("BIENVENUE");
affich = new JLabel();
operante1_1 = new JLabel("REEL 1_1 :");
operante1_2 = new JLabel("IMAGINAIRE 1_1 :");
operante2_1 = new JLabel("REEL 2_1 : ");
operante2_2 = new JLabel("IMAGINAIRE 2_2 :");


operante1_1.setFont(policetext);
operante1_2.setFont(policetext);
operante2_1.setFont(policetext);
operante2_2.setFont(policetext);

info.setFont(fbas);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == item1)
{
panelMain.removeAll();
panelMain.updateUI();
panelMain.setLayout(null);

info.setText("OPERATION BINAIRE");
info.setBounds(50, 20, 400, 30);
panelMain.add(info);
info.setVisible(true);
addition.setBounds(50, 70,380, 30);
multiplication.setBounds(50, 120, 380, 30);
division.setBounds(50, 170, 380, 30);
soustration.setBounds(50, 210, 380, 30);

//result.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY));
//result1.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY));
//result2.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY));
//result3.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY));

panelMain.add(addition);
panelMain.add(multiplication);
panelMain.add(division);
panelMain.add(soustration);



// panelMain.add(result);
// panelMain.add(result1);
// panelMain.add(result2);
// panelMain.add(result3);

info.setVisible(true);
panelMain.updateUI();
}
if (e.getSource() == item2)
{
panelMain.removeAll();
panelMain.updateUI();
panelMain.setLayout(null);

info.setText("OPERATION UNAIRE");
info.setBounds(50, 20, 400, 30);
panelMain.add(info);
info.setVisible(true);
inverse.setBounds(50, 70,380, 30);
oppose.setBounds(50, 120, 380, 30);
module.setBounds(50, 170, 380, 30);
argument.setBounds(50, 210, 380, 30);
racine_carre.setBounds(50, 260, 380, 30);

panelMain.add(inverse);
panelMain.add(oppose);
panelMain.add(module);
panelMain.add(argument);
panelMain.add(racine_carre);



// panelMain.add(result);
// panelMain.add(result1);
// panelMain.add(result2);
// panelMain.add(result3);

info.setVisible(true);
panelMain.updateUI();
}
if (e.getSource() == item3)
{

}
if (e.getSource() == item4)
{

}


if (e.getSource() == A_propos)
{
String message = "CompC V 0.1 \n This Application has a copyright All use \n other to" +
" a personal usage will be seriously punished by the law \n Development Group :\n" +
" - Todem Feuwo Boris \n Copyright 2010 - 2011";

JOptionPane jop1;
jop1 = new JOptionPane();
jop1.showMessageDialog(null, message, "A Propos", JOptionPane.INFORMATION_MESSAGE);
}
if (e.getSource() == Aide)
{
String message = "CompC V 0.1 \n This Application has a copyright All use \n other to" +
" ce logiciel a pour fonction de facilite le calcul des complexe\n" +
" le logiciel vous propose deux types d'operations binaires et unaires\n" +
" - Todem Feuwo Boris \n Copyright 2010 - 2011";

JOptionPane jop1;
jop1 = new JOptionPane();
jop1.showMessageDialog(null, message, "A Propos", JOptionPane.INFORMATION_MESSAGE);
}
if (e.getSource() == quitte)
{
System.exit(0);
}
if (e.getSource() == addition )
{
panelMain.removeAll();
panelMain.updateUI();
panelMain.setLayout(null);

info.setText(" Addition ...");
info.setBounds(150, 20, 250, 30);
panelMain.add(info);
info.setVisible(true);

operante1_1.setBounds(100, 55, 190, 30);
op1_1.setBounds(100, 80, 280, 25);
operante1_2.setBounds(100, 105, 190, 30);
op1_2.setBounds(100, 130, 280, 25);
operante2_1.setBounds(100, 155, 190, 30);
op2_1.setBounds(100, 180, 280, 25);
operante2_2.setBounds(100,205, 190, 30);
op2_2.setBounds(100, 230, 280, 25);
additionner.setBounds(200, 280, 80, 30);

panelMain.add(operante1_1);
panelMain.add(op1_1);
panelMain.add(operante1_2);
panelMain.add(op1_2);
panelMain.add(operante2_1);
panelMain.add(op2_1);
panelMain.add(operante2_2);
panelMain.add(op2_2);
panelMain.add(additionner);


panelMain.updateUI();


}
if (e.getSource() == division )
{

panelMain.removeAll();
panelMain.updateUI();
panelMain.setLayout(null);

info.setText(" Division ...");
info.setBounds(150, 20, 250, 30);
panelMain.add(info);
info.setVisible(true);

operante1_1.setBounds(100, 55, 190, 30);
op1_1.setBounds(100, 80, 280, 25);
operante1_2.setBounds(100, 105, 190, 30);
op1_2.setBounds(100, 130, 280, 25);
operante2_1.setBounds(100, 155, 190, 30);
op2_1.setBounds(100, 180, 280, 25);
operante2_2.setBounds(100,205, 190, 30);
op2_2.setBounds(100, 230, 280, 25);
division.setBounds(200, 280, 80, 30);

panelMain.add(operante1_1);
panelMain.add(op1_1);
panelMain.add(operante1_2);
panelMain.add(op1_2);
panelMain.add(operante2_1);
panelMain.add(op2_1);
panelMain.add(operante2_2);
panelMain.add(op2_2);



panelMain.updateUI();


}
if (e.getSource() == multiplication )
{
panelMain.removeAll();
panelMain.updateUI();
panelMain.setLayout(null);

info.setText(" Multiplication ...");
info.setBounds(150, 20, 250, 30);
panelMain.add(info);
info.setVisible(true);

operante1_1.setBounds(100, 55, 190, 30);
op1_1.setBounds(100, 80, 280, 25);
operante1_2.setBounds(100, 105, 190, 30);
op1_2.setBounds(100, 130, 280, 25);
operante2_1.setBounds(100, 155, 190, 30);
op2_1.setBounds(100, 180, 280, 25);
operante2_2.setBounds(100,205, 190, 30);
op2_2.setBounds(100, 230, 280, 25);


panelMain.add(operante1_1);
panelMain.add(op1_1);
panelMain.add(operante1_2);
panelMain.add(op1_2);
panelMain.add(operante2_1);
panelMain.add(op2_1);
panelMain.add(operante2_2);
panelMain.add(op2_2);



panelMain.updateUI();


}
if (e.getSource() == soustration )
{
panelMain.removeAll();
panelMain.updateUI();
panelMain.setLayout(null);

info.setText(" Soustration ...");
info.setBounds(150, 20, 250, 30);
panelMain.add(info);
info.setVisible(true);

operante1_1.setBounds(100, 55, 190, 30);
op1_1.setBounds(100, 80, 280, 25);
operante1_2.setBounds(100, 105, 190, 30);
op1_2.setBounds(100, 130, 280, 25);
operante2_1.setBounds(100, 155, 190, 30);
op2_1.setBounds(100, 180, 280, 25);
operante2_2.setBounds(100,205, 190, 30);
op2_2.setBounds(100, 230, 280, 25);


panelMain.add(operante1_1);
panelMain.add(op1_1);
panelMain.add(operante1_2);
panelMain.add(op1_2);
panelMain.add(operante2_1);
panelMain.add(op2_1);
panelMain.add(operante2_2);
panelMain.add(op2_2);



panelMain.updateUI();



}
if (e.getSource() == additionner )
{
panelMain.removeAll();
compl co1 = new compl();
compl co2 = new compl();
compl co3 = new compl();

float c1,c2,c3,c4;
panelMain.updateUI();
panelMain.setLayout(null);

info.setText(" Resultat");
info.setBounds(150, 20, 250, 30);
panelMain.add(info);
info.setVisible(true);
// if(!operante1_1.getText().isEmpty()||!operante1_2.getText().isEmpty()||!operante2_1.getText().isEmpty()||!operante2_2.getText().isEmpty()){
c1 = Float.parseFloat(operante1_1.getText());// ici je recupere la valeur et je converti en float
co1.setreel(c1);

c2 = Float.parseFloat(operante1_2.getText());// ici je recupere la valeur et je converti en float
co1.setimg(c2);
c3 = Float.parseFloat(operante2_1.getText());// ici je recupere la valeur et je converti en float
co2.setreel(c3);
c4 = Float.parseFloat(operante2_2.getText());// ici je recupere la valeur et je converti en float
co2.setimg(c4);

co3 = co3.Additioncomp(co1,co2);
JLabel resultat = new JLabel();
String res = " Le Resultat est : " + co3.getreel() + " + " + co3.getimag() + "i";
resultat.setText("a plus");
result.setBounds(100, 230, 250, 30);
panelMain.add(result);
panelMain.add(resultat);
resultat.updateUI();
resultat.setVisible(true);
panelMain.updateUI();



}
}
}


et voici l'erreur que cela retourne :
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "REEL 1_1 :"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
at java.lang.Float.parseFloat(Float.java:422)
at complexe.fenetre.actionPerformed(fenetre.java:523)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3255)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


CETTE reponse appareil lorsque j'appui sur le bouton adittionner pardon j'ai besoin de votre aide sur ce coup la merci d'avance je suis nouveau dans le java

3 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
13 juin 2011 à 01:55
bonjour, (ce n est jamais inutil de commencer pas ça)

Quelle horreure !!! Sans parler du manque de formatage du code. Les noms variables ne ressemblent à rien et une bonne partie des conventions d'écriture JAVA ne sont pas appliquées... Beaucoup trop fatiguant à lire...
Ensuite, cela manque cruellement de close try/catch... qui permetraient d'affiner la recherche d'erreur ...

Cependant, en lisant le message d'erreur, il apparait évident qu une opération de parseFloat ne peut s'effectuer correctement. Fait donc un system out de toutes les String avant de les parser tu mettra en évidence celle qui ne conviend pas et il sera plus facil de trouver pourquoi!! ... surement une valeur non numérique.

GodConan ;o)
0
Utilisateur anonyme
13 juin 2011 à 06:22
Salut,

Ce message est clair:
java.lang.NumberFormatException: For input string: "REEL 1_1 :"

Si on saisi REEL 1_1 : et qu'on tente d'en faire un parseFloat c'est normal que cette exception soit levée...

Cordialement,

...\ Dan /...
0
Utilisateur anonyme
16 juin 2011 à 23:09
Je suis d'accord avec GodConan, utilise les balises pour afficher le code et code mieux que ça ! C'est vraiment massacrer le langage

Sinon, comme cela a été dit plus haut, fais utilises un bloc try/catch dans ton actionPerformed pour pouvoir attraper l'exception levée afin qu'elle ne fasse pas planter ton programme.

Un truc du genre :
if (e.getSource() == additionner ) {
   try {
       // ton code
   } catch ( Exception e ){
        System.out.println("Exception levée ici" + e.printStackTrace());
   }
}


A mon avis, tu as inséré une mauvaise valeur qui n'a put être convertie en float. C'est aussi bête que ça.
Quand tu fais des casts de ce genre, assure toi que les valeurs à transformer soient correctes. Donc soit tu les testes, soit tu utilises les try/catch.

--
Pylouq (actuellement jongleur de clavier AZERTY et de clavier QWERTZ)
0
Rejoignez-nous